selenium採用find_element_by方法識別頁面元素

  主要是練習獲取頁面中的各元素,馬克css

 

 1 # coding:utf-8
 2 import time
 3 from selenium import webdriver
 4 import unittest
 5 from pythontest.commlib.baselib import *
 6 
 7 #引用封裝後的日誌系統
 8 log = TestLog().getlog()
 9 class BaiBu(unittest.TestCase):
10     u'''【百度.類】'''
11     def setUp(self):
12         self.browser = webdriver.Firefox()
13         self.browser.get("http://www.baidu.com")
14         self.browser.implicitly_wait(10)
15         #self.base = Screen(self.browser)
16 
17     def tearDown(self):
18         self.browser.quit()
19 
20     def test_search(self):
21         u'''採用id,class,name等屬性識別元素'''
22         #<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
23         #<input id="su" value="百度一下" class="bg s_btn" type="submit">
24         #識別id屬性
25         self.browser.find_element_by_id("kw").send_keys("python")
26         self.browser.find_element_by_id("su").submit()
27         print self.browser.title
28         self.assertEqual(self.browser.title,u"百度一下,你就知道")
29         log.info("識別id屬性,執行[find_element_by_id]")
30 
31         time.sleep(3)
32 
33         #識別name屬性 <input id="su" value="百度一下" class="bg s_btn" type="submit">
34         self.browser.find_element_by_name("wd").clear()     #清空原關鍵字
35         self.browser.find_element_by_name("wd").send_keys("python logging")
36         # class屬性是比較特殊的一個,屬性值能夠有多個,中間是用空格隔開的
37         #self.browser.find_element_by_class_name("bg s_btn").submit()  #使用class_name會報錯
38         #self.browser.find_element_by_class_name("s_btn").submit()      #第一種解決辦法:class值取其中之一
39         #self.browser.find_element_by_class_name("bg").submit()          #第一種解決辦法:class值取其中之一
40         self.browser.find_element_by_css_selector(".bg.s_btn").submit()          #第二種解決辦法:使用css.selector,每一個class值前面加.
41         log.info("識別name屬性,執行[find_element_by_name]")
42         time.sleep(3)
43 
44         #識別class屬性
45         self.browser.find_element_by_name("wd").clear()  # 清空原關鍵字
46         self.browser.find_element_by_class_name("s_ipt").send_keys("selenium webdriver")
47         self.browser.find_element_by_class_name("s_btn").submit()
48         log.info("識別class屬性,執行[find_element_by_class_name]")
49         time.sleep(3)
50 
51     def test_xpath(self):
52         u'''採用xpath識別元素'''
53         self.browser.find_element_by_xpath(".//*[@id='kw']").send_keys("xpath test")        #採用id
54         self.browser.find_element_by_xpath(".//*[@id='su']").submit()           #採用id
55         log.info("採用xpath識別頁面中的屬性,[id]")
56 
57         self.browser.find_element_by_xpath(".//*[@name='wd']").clear()  # 清空原關鍵字        #採用name
58         self.browser.find_element_by_xpath(".//*[@class='s_ipt']").send_keys("selenium auto test")        #採用class
59         self.browser.find_element_by_xpath(".//*[@type='submit']").submit()     #採用type
60         log.info("採用xpath識別頁面中的屬性,[class、type]")
61 
62 
63 
64 if __name__ == "__main__":
65     unittest.main()

運行結果:python

相關文章
相關標籤/搜索