selenium Python定位元素和相關事件

場景

經過使用selenium python的API可以很好的定位html中的元素,並指揮鼠標進行點擊。html

定位元素

find_element_by_*方法

  • find_element_by_id(id_) : html標籤中的id肯定標籤
  • find_element_by_link_text(link_text):html標籤中的文本內容肯定標籤
  • find_element_by_partial_link_text(link_text):html標籤中的文本部份內容肯定標籤
  • find_element_by_xpath(xpath):使用xpath語法來肯定html標籤

這裏前3種方式都比較好理解,相對陌生的就是Xpath語法,xpath例子:node

# -*- coding: utf-8 -*-
from selenium import webdriver
# 包含ABC字符串的html標籤,而後,再向上找兩層父節點
mouse = driver.find_element_by_xpath("//*[contains(text(),'ABC')]/../..")

這裏若是是中文,須要在Python源代碼最上面一行設置:# -*- coding: utf-8 -*-.python

點擊事件

# click方法點擊html標籤
driver.find_element_by_id("Button1").click()

上面的這個方法能夠會沒有效果,由於有的頁面設計成,必須須要鼠標先懸浮在html標籤元素上,而後,進行點擊纔是有效點擊,這樣的事件,應使用以下方式處理:git

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
# 使用xpath語法找到元素
mouse = driver.find_element_by_xpath("//*[contains(text(),'ABC')]/../..")
# move_to_element方法讓鼠標實現懸浮事件
# click方法讓鼠標進行點擊事件
# perform方法統一完成上述2個事件
ActionChains(driver).move_to_element(mouse).click(mouse).perform()

這裏主要就是ActionChains的使用。github

輸入事件

# 找到html標籤,使用send_keys方法鍵盤輸入hello
driver.find_element_by_id("uid").send_keys("hello")

參考

相關文章
相關標籤/搜索