selenium元素定位(三)
阿新 • • 發佈:2018-03-30
瀏覽器 war art style link 問題 cond val 最大
使用selenium就不可避免的要提到界面元素定位,通過元素定位來實現一系列的邏輯操作。
selenium提供了8中元素定位的方式:
id、name、class name、tag name、link text、partial link text、xpath、css selector。
其中使用xpath來根據id或class來定位元素的可以解決大部分問題。
這8中定位方式在python selenium中使用的對應具體方法為:
1 find_element_by_id() 2 find_element_by_name() 3 find_element_by_class_name()4 find_element_by_tag_name() 5 find_element_by_link_text() 6 find_element_by_partial_link_text() 7 find_element_by_xpath() 8 find_element_by_css_selector()
具體用法:
平常我們使用瀏覽器打開一個web網頁,通過F12可以查看它的html元素,它是這樣子的:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
< title></title>
</head>
<body>
<form id="form" action="">
姓名:<input id="name" class="fm" type="text" name="yourname" size="30" maxlength="20" value="輸入框的長度為30,允許最大字符數為20"><br>
</form>
</body>
</html>
我們可以根據html元素來定位input標簽的輸入框。
1、通過set_window_size()方法來設置瀏覽器的大小。
1 from selenium import webdriver 2 3 chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver" 4 browser = webdriver.Chrome(chromedriver) 5 browser.get("http://m.baidu.com") 6 # 參數數字為像素點 7 print("設置瀏覽器寬480、高800顯示") 8 browser.set_window_size(480, 800) 9 browser.quit()
2、通過back()和forward()方法來進行回退與前進操作。
1 from selenium import webdriver 2 3 chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver" 4 browser = webdriver.Chrome(chromedriver) 5 #訪問百度首頁 6 first_url= ‘http://www.baidu.com‘ 7 print("now access %s" %(first_url)) 8 browser.get(first_url) 9 10 #訪問新聞頁面 11 second_url=‘http://news.baidu.com‘ 12 print("now access %s" %(second_url)) 13 browser.get(second_url) 14 15 #返回(後退)到百度首頁 16 print("back to %s "%(first_url)) 17 browser.back() 18 19 #前進到新聞頁 20 print("forward to %s"%(second_url)) 21 browser.forward()
3、利用id定位百度輸入框來進行輸入值,進行點擊操作。
通過F12可以看到百度輸入框id為“kw”,百度一下,搜索按鈕id為“su”。
from selenium import webdriver chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver" browser = webdriver.Chrome(chromedriver) #訪問百度首頁 first_url= ‘http://www.baidu.com‘ browser.get(first_url) browser.find_element_by_id("kw").clear() browser.find_element_by_id("kw").send_keys("selenium") browser.find_element_by_id("su").click()
4、利用其他方式定位百度輸入框來進行輸入值,進行點擊操作。
1 # coding = utf-8 2 from selenium import webdriver 3 4 chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver" 5 browser = webdriver.Chrome(chromedriver) 6 #訪問百度首頁 7 first_url= ‘http://www.baidu.com‘ 8 browser.get(first_url) 9 10 #通過name方式定位 11 browser.find_element_by_name("wd").send_keys("selenium") 12 #通過tag name方式定位 13 browser.find_element_by_tag_name("input").send_keys("新聞") 14 #通過class name 方式定位 15 browser.find_element_by_class_name("s_ipt").send_keys("軍事") 16 #通過CSS方式定位 17 browser.find_element_by_css_selector("#kw").send_keys("gun") 18 #通過xphan方式定位 19 browser.find_element_by_xpath("//input[@id=‘kw‘]").send_keys("AI") 20 21 # 點擊搜索 22 browser.find_element_by_id("su").click() 23 browser.quit()
selenium元素定位(三)