一、XPath定位
XPath是一種用於選取XML文檔中某些部分的語言。XPath通常用於在XML文檔中搜索內容,或從XML文檔中提取信息。在定位HTML元素時,XPath定位使用的是元素的屬性和標籤名。
from selenium import webdriver
# 創建瀏覽器對象
browser = webdriver.Chrome()
# 打開頁面
browser.get('http://www.baidu.com')
# 根據元素的class屬性定位
input_ele = browser.find_element_by_xpath('//input[@class="s_ipt"]')
# 根據元素的屬性值定位,id="su"
search_btn = browser.find_element_by_xpath('//*[@id="su"]')
在以上示例代碼中,我們主要是通過元素的class屬性和id屬性來定位元素。例如,我們通過find_element_by_xpath(‘//input[@class=”s_ipt”]’)來查找元素,其中 [@class=”s_ipt”]表示class屬性為s_ipt的元素。
二、XPath定位label元素
在一些表單提交場景中,我們需要先定位到該表單的label標籤,再通過for屬性和表單元素的id屬性進行綁定,以便在頁面上點擊label標籤時可自動選中相應的表單輸入框。
from selenium import webdriver
# 創建瀏覽器對象
browser = webdriver.Chrome()
# 打開頁面
browser.get('http://www.baidu.com')
# 根據label里的文字找到對應的input輸入框
input_ele = browser.find_element_by_xpath('//label[contains(text(),"貼吧")]//following-sibling::input')
在以上示例代碼中,我們通過contains函數匹配label標籤中包含“貼吧”文字的元素,再通過//following-sibling::input找到該label標籤後的input標籤元素。
三、XPath定位img元素
在網頁中,如果需要定位img標籤元素,可以使用以下示例中的方法定位img元素。
from selenium import webdriver
# 創建瀏覽器對象
browser = webdriver.Chrome()
# 打開頁面
browser.get('http://www.taobao.com')
# 根據元素的標籤名和屬性值定位,
img_ele = browser.find_element_by_xpath('//img[@alt="超值惠選"]')
在以上示例代碼中,我們通過查找alt屬性為“超值惠選”的img標籤元素。
四、XPath定位是什麼
XPath定位是一種用於選取XML文檔中某些部分的語言,在定位HTML元素時,XPath使用的是元素的屬性和標籤名。XPath可以根據不同的情況選用不同的方法來定位元素,如根據標籤名、class、id、屬性值等進行定位。
五、XPath和CSS定位選取
在定位網頁元素時,開發人員可以使用CSS和XPath兩種語言進行選取。兩種語言各有優缺點,使用時需視情況而定。對於開發人員來說,使用CSS定位更簡單,而且在執行速度上也稍微快一些。
from selenium import webdriver
# 創建瀏覽器對象
browser = webdriver.Chrome()
# 打開頁面
browser.get('http://www.baidu.com')
# 根據元素的class屬性定位
input_ele = browser.find_element_by_css_selector('.s_ipt')
# 根據標籤名和屬性值定位
search_btn = browser.find_element_by_css_selector('input[id="su"]')
在以上示例代碼中我們通過.find_element_by_css_selector方法來定位元素,並且我們發現通過CSS定位元素更簡單。例如,我們可以直接使用.find_element_by_css_selector(‘.s_ipt’)來根據class屬性定位元素,而無需使用XPath語言的類選擇器(.//input[@class=”s_ipt”])。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/159325.html
微信掃一掃
支付寶掃一掃