selenium2 頁面交互

2021-07-02 17:03 更新

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

<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']")

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

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

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

element.send_keys("some text")

你可以使用Keys類來模擬輸入方向鍵:

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

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

element.clear()


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號