selenium2 頁(yè)面交互

2021-07-02 17:03 更新

我們比較喜歡做的事情就是和頁(yè)面交互,準(zhǔn)確的說(shuō),是和頁(yè)面里的HTML元素交互。首先,我們要找到一個(gè)元素,?WebDriver?提供了許多方法查找元素,例如,給定一個(gè)這樣的元素:

<input type="text" name="passwd" id="passwd-id" />

你可以用下列任意方法找到它:

element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("http://input[@id='passwd-id']")

你也可以通過(guò)文本信息來(lái)找到一個(gè)鏈接,但是要注意,文本必須要完全匹配。 在使用?XPATH?的時(shí)候也要注意,如果有多個(gè)元素匹配,只會(huì)返回第一個(gè)。如果匹配不到任何元素,會(huì)拋出一個(gè)?NoSuchElementException?異常。

?WebDriver?有一個(gè) 基于對(duì)象的 API,我們可以通過(guò)同一個(gè)接口代表所有類(lèi)型的元素,這意味著當(dāng)你敲擊你 IDE 的自動(dòng)補(bǔ)全組合鍵的時(shí)候,雖然你會(huì)看到你可以調(diào)用很多方法,但不是所有的方法都行得通。不過(guò)不要擔(dān)心!?WebDriver?會(huì)自己嘗試做正確的選擇。并且如果你調(diào)用一個(gè)沒(méi)用的方法(例如在一個(gè)?meta?標(biāo)簽上調(diào)用?setSelected()?),?WebDriver?會(huì)拋出一個(gè)異常。

那么,當(dāng)你獲取到一個(gè)元素之后,你可以做些什么呢?首先,你可能會(huì)想輸入一些文本到一個(gè)文本區(qū)域:

element.send_keys("some text")

你可以使用Keys類(lèi)來(lái)模擬輸入方向鍵:

element.send_keys(" and some", Keys.ARROW_DOWN)

理論上任意的元素都可以調(diào)用?send_keys?方法,就是說(shuō)我們可以測(cè)試?yán)?Gmail 的鍵盤(pán)快捷鍵。 ?send_keys?的副作用就是輸入文本到文本域不會(huì)自動(dòng)清除,而是會(huì)附加到原有的文本后面,我們可以使用?clear?方法來(lái)很方便的清除文本框或者文本域的內(nèi)容:

element.clear()


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)