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("//input[@id='passwd-id']")

你也可以通过文本信息来找到一个链接,但是要注意,文本必须要完全匹配。 在使用​XPATH​的时候也要注意,如果有多个元素匹配,只会返回第一个。如果匹配不到任何元素,会抛出一个​NoSuchElementException​异常。

WebDriver​有一个 基于对象的 API,我们可以通过同一个接口代表所有类型的元素,这意味着当你敲击你 IDE 的自动补全组合键的时候,虽然你会看到你可以调用很多方法,但不是所有的方法都行得通。不过不要担心!​WebDriver​会自己尝试做正确的选择。并且如果你调用一个没用的方法(例如在一个​meta​标签上调用​setSelected()​),​WebDriver​会抛出一个异常。

那么,当你获取到一个元素之后,你可以做些什么呢?首先,你可能会想输入一些文本到一个文本区域:

element.send_keys("some text")

你可以使用Keys类来模拟输入方向键:

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

理论上任意的元素都可以调用​send_keys​方法,就是说我们可以测试例如 Gmail 的键盘快捷键。 ​send_keys​的副作用就是输入文本到文本域不会自动清除,而是会附加到原有的文本后面,我们可以使用​clear​方法来很方便的清除文本框或者文本域的内容:

element.clear()


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号