Selenium2有关专业知识最齐小结
时间:2021-04-02

1. 精准定位原素的几类方式

    find_element_by_id(优先选择,常见),相匹配的是id特性

    find_element_by_name(优先选择,常见),相匹配的是name特性

    find_element_by_class_name,相匹配的是class属性的值

    find_element_by_tag_name,相匹配的是标识名字,如input,p,span,title,body....

    find_element_by_link_text,相匹配的是网页链接的文字內容

    find_element_by_partial_link_text,相匹配的是一部分网页链接的文字內容

    find_element_by_xpath,相匹配的是原素的path,可根据firebug专用工具得到

    find_element_by_css_selector,根据css属性精准定位,class用.  id用#,

         实例:

             driver.find_element_by_css_selector(".s_ipt").send_keys("selenium")

             driver.find_element_by_css_selector("#su").click()


2.By精准定位

    find_element(By.ID,"kw")

    find_element(By.NAME,"wd")

    find_element(By.CLASS_NAME,"s_ipt")

    find_element(By.TAG_NAME,"input")

    find_element(By.LINK_TEXT,u"新闻报道")

    find_element(By.PARTIAL_LINK_TEXT,u"新")

    find_element(By.XPATH,"//*[@class='bg s_btn']")

    find_element(By.CSS_SELECTOR,"span.bg s_btn_wrinput#su") 


3.几类电脑浏览器实际操作

    表明:实际操作电脑浏览器必须将游览器文件目录放进系统变量中,要不然找不着

    from selenium import webdriver

    driver = webdriver.Ie()        --IE电脑浏览器,软件名叫   IEDriverServer.exe

    driver = webdriver.Firefox()   -- 搜狗浏览器,软件名叫  geckodriver.exe

    driver = webdriver.Chrome()  -- 谷歌游览器,软件名叫  chromedriver.exe

    driver = webdriver.Edge()      --Edge电脑浏览器(windows10系统软件内置), 不用软件

    实际操作360浏览器:

       360ie内核根据chrome浏览器,因而软件用的也是chromedriver.exe,但是得配备下

        chrome_optiOns= webdriver.ChromeOptions()

        chrome_options.binary_location = r"C:\Users\kevin\AppData\Roaming\360se6\Application\360se.exe" #这儿是360安全电脑浏览器的途径

        chrome_options.add_argument(r'--lang=zh-CN') # 这儿加上一些运行的主要参数

        d = webdriver.Chrome(chrome_optiOns=chrome_options)

   

4.操纵电脑浏览器

   设定高宽:driver.set_window_size(400,500),  ------设定宽400,高500

   设定全屏幕:driver.maximize_windows()

   前行:driver.forward()

   倒退:  driver.back()

   更新当今网页页面:driver.refresh()

   

5.精准定位到的原素实际操作

   driver.find_element_by_xx('xx').click()              --点一下实际操作

   driver.find_element_by_xx('xx').clear()             --消除实际操作,消除输入框中的內容

   driver.find_element_by_xx('xx').send_keys('123')     --键入数据信息到输入框

   driver.find_element_by_xx('xx').submit()         --递交实际操作,等同于回车键,如在输入框中键入內容后,实行此方式,可立即实行检索姿势

   driver.find_element_by_xx('xx').size()              --获得原素的规格

   driver.find_element_by_xx('xx').text                --获得原素的文字

   driver.find_element_by_xx('xx').get_attribute('id')   --获得id特性,只需是特性都可以根据此方式获得,如name,id,type,class.

   driver.find_element_by_xx('xx').is_displayed()    --获得原素是不是由此可见,由此可见回到True,不然False

   

6.鼠标事件

   Actions类中出示了鼠标键的常见方式

   perform()                               --实行全部Actions类中储存的个人行为

   context_click()                       --右键

   double_click()                        --双击鼠标

   drap_and_drop()                   --拖拽

   move_to_element                 --悬停


  启用实例:

     context_click()       

    别的的方式启用跟上面一样,仅仅改下方式罢了


7.电脑键盘实际操作

   仿真模拟键盘快捷键 CTRL A,CTRL C这些

   from selenium.webdriver.common.keys import Keys

   退格键 Keys.BACK_SPACE             ---  driver.find_elemennt_by_id('').send_keys(Keys.BACK_SPACE)

   空白键Keys.SPACE                        ---  driver.find_elemennt_by_id('').send_keys(Keys.SPACE)

   键入CTRL A                                 ---  driver.find_elemennt_by_id('').send_keys(Keys.CONTROL,'a')

   回车                                           ---  driver.find_elemennt_by_id('').send_keys(Keys.ENTER)


8.设定原素等候

   显式等候:

            一直检验并等候某一原素发生或消退,做到较大 时间标准还未创立则抛出去请求超时出现异常

           from selenium import webdriver

           from selenium.webdriver.support.ui import WebDriverWait

           from selenium.webdriver.support import expected_conditions as EC

           driver = webdriver.Ie()
           driver.get("https://www.jishubl.com/hdkf.html

     假如chrome版本号太高,提议应用IE电脑浏览器替代