利用selenium模組控制瀏覽器
匯入selenium模組:from selenium import webdriver
browserfirefox = webdriver.firefox()#開啟firefox瀏覽器,返回乙個webdriver物件
browserfirefox.get('')
webdriver物件有兩種方法:
find_element_*和find_elements_*方法
1、find_element_*:返回乙個webelement物件,代表頁面中的匹配查詢到的第乙個元素
2、find_elements_*:返回的是webelement_*物件的列表,包含頁面中所有匹配的元素
元素定位:
find_element_by_id() //根據id屬性定位
find_element_by_name() //根據name屬性定位
find_element_by_class_name() //根據class屬性定位
find_element_by_link_text() //根據文字鏈結
find_element_by_partial_link_text() //根據文字鏈結的一部分
find_element_by_tag_name() //根據標籤名稱
find_element_by_xpath() //根據xpath定位,xpath如何用多個屬性定位, find_element_by_xpath("//div[@class='x' and name='b']")
絕對路徑寫法(只有一種),寫法如下:
引用頁面上的form元素(即原始碼中的第3行):/html/body/form[1]
絕對路徑以單/號表示,而下面要講的相對路徑則以//表示,這個區別非常重要。另外需要多說一句的是,當xpath的路徑以/開頭時,表示讓xpath解析引擎從文件的根節點開始解析。當xpath路徑以//開頭時,則表示讓xpath引擎從文件的任意符合的元素節點開始進行解析。而當/出現在xpath路徑中時,則表示尋找父節點的直接子節點,當//出現在xpath路徑中時,表示尋找父節點下任意符合條件的子節點,不管巢狀了多少層級(這些下面都有例子,大家可以參照來試驗)。弄清這個原則,就可以理解其實xpath的路徑可以絕對路徑和相對路徑混合在一起來進行表示,想怎麼玩就怎麼玩。
下面是相對路徑的引用寫法:
查詢頁面根元素://
查詢頁面上所有的input元素://input
查詢頁面上第乙個form元素內的所有子input元素(只要在form元素內的input都算,不管還巢狀了多少個其他標籤,使用相對路徑表示,雙//號)://form[1]//input
查詢頁面上第乙個form元素://form[1]
查詢頁面上id為loginform的form元素://form[@id='loginform']
查詢頁面上具有name屬性為username的input元素://input[@name='username']
查詢頁面上id為loginform的form元素下的第乙個input元素://form[@id='loginform']/input[1]
查詢頁面具有name屬性為contiune並且type屬性為button的input元素://input[@name='continue'][@type='button']
查詢頁面上id為loginform的form元素下第4個input元素://form[@id='loginform']/input[4]
selenium基礎(控制瀏覽器)
python基礎 控制瀏覽器 控制瀏覽器 from selenium import webdriver import time from selenium.webdriver.common.keys import keys 引入keys方法包,用於鍵盤操作 from selenium.webdriv...
學習記錄 selenium控制瀏覽器
設定瀏覽器解析度寬高 from selenium import webdriver import time driver webdriver.chrome driver.get print 設定瀏覽器解析度大小為寬480高580 driver.set window size 480,800 time...
selenium瀏覽器自動化模組
例項化乙個瀏覽器物件,填寫瀏覽器驅動位置,要加r,放置字元轉義 driver webdriver.chrome r chromedriver.exe 用get方法開啟網頁 driver.get 查詢頁面的 設定 選項,呼叫的方法 通過連線文字查詢元素 找到並點選 driver.find elemen...