1. 程式人生 > >selenium元素定位(三)

selenium元素定位(三)

瀏覽器 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元素定位(三)