selenium定位元素方法


1、通過id定位元素
寫法1:
element = driver.find_element _by_id("kw")
寫法2:
from selenium.webdriver.common.by import By
element = driver.find_element(by=By.ID, value="kw")
Tips: by=By.ID表示以id的方式定位web元素,下面的例子有類似的寫法以此類推
 
2、通過class定位元素
寫法1:
cheeses = driver.find_elements_by_ class_name("cheese")
Tips:注意,這里返回的是一個包含web元素的列表,下同
寫法2:
from selenium.webdriver.common.by import By
cheeses = driver.find_elements(By. CLASS_NAME, "cheese")
 
3、通過name定位元素
寫法1:
cheese = driver.find_element_by_name("cheese")
寫法2:
from selenium.webdriver.common.by import By
cheese = driver.find_element(By.NAME, "cheese")
 
4、通過tag(html標簽)定位元素
寫法1:
如果iframe這個tag在本html中是唯一的,可以根據iframe這個tag名來找到該元素
frame = driver.find_element_by_ tag_name("iframe")
寫法2:
from selenium.webdriver.common.by import By
frame = driver.find_element(By. TAG_NAME, "iframe")
注意,通過title標簽名獲取title元素,打印的文本值為空:
ele2=driver.find_element_by_tag_name('title')
print(ele2.text)
 
5、獲取頁面中title值
Title 是一個特殊的元素,標簽內的文本表示頁面的標題,
可以通過driver.title屬性獲取頁面標題
 
6、通過超文本連接(link)來定位元素
寫法1:
ele = driver.find_element_by_ link_text("轉到百度")
 
寫法2:
from selenium.webdriver.common.by import By
ele = driver.find_element(By. LINK_TEXT, "轉到百度")
 
7、通過partial_link定位
當全稱很長時,使用模糊匹配
如百度首頁,點擊hao123時:
driver.find_element_by_partial_link_text('ao123').click()
 
8、css定位方法
https://www.cnblogs.com/aiyumo/p/12576150.html
9、xpath定位方法
https://www.cnblogs.com/aiyumo/p/12576380.html
總結:有時候通過上面的方法定位不到元素,只能根據上層元素去定位
注意:現在很多頁面加載后(也加載javascript前端代碼), 由前端代碼動態改變界面的內容,比如從后端獲取一些數據后,再動態改變界面的內容。尤其是很多采用了框架像   angular, react, vue這些都會這樣做,這樣會導致一個問題,操作后再去操作之前定位的元素,會報錯,每次都要重新獲取元素,使元素一直都是最新的。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM