操控元素通常包括
点击元素
在元素中输入字符串,通常是对输入框这样的元素
获取元素包含的信息,比如文本内容,元素的属性
点击元素
点击元素其实就是调用对象的 click 方法。
但要注意的是,
当我们调用 WebElement 对象的 click 方法去点击 元素的时候, 浏览器接收到自动化命令,点击的是该元素的 中心点 位置 。
这样一个例子,
我们要点击 添加客户 这个按钮,既可以点击 右边对应的 绿色框子总的button 元素 ,也可以点击红色框子中的span元素 。
因为这两个元素的中心点都是 button 内部,都是有效点击区域
输入框
输入字符串其实就是调用元素WebElement对象的send_keys方法
但如果这个输入框里原来就有内容(提示符号等),我们就需要先清除掉。
element = wd.find_element_by_id("kw")
element.find_element_by_id("kw").click()
element.clear() # 清除输入框已有的字符串
element.send_keys('Python') # 输入新字符串
获取元素信息
获取元素的文本内容
也就是元素展示在界面上的内容
element = wd.find_element_by_id('animal')
print(element.text)
获取元素属性
通过WebElement对象的 get_attribute 方法来获取元素的属性值,
比如要获取元素属性class的值,就可以使用 element.get_attribute('class')
element = wd.find_element_by_id('input_name')
print(element.get_attribute('class'))
执行完自动化代码,如果想关闭浏览器窗口可以调用WebDriver对象的 quit 方法,像这样 wd.quit()
获取整个元素对应的 HTML
要获取整个元素对应的HTML文本内容,可以使用 element.get_attribute('outerHTML')
如果,只是想获取某个元素 内部 的HTML文本内容,可以使用 element.get_attribute('innerHTML')
获取输入框里面的文字
对于input输入框的元素,要获取里面的输入文本,用text属性是不行的,这时可以使用 element.get_attribute('value')
element = wd.find_element_by_id("input1")
print(element.get_attribute('value')) # 获取输入框中的文本
获取元素中的文本内容
通过WebElement对象的 text 属性,可以获取元素 展示在界面上的 文本内容。
但是,有时候,元素的文本内容没有展示在界面上,或者没有完全展示在界面上。 这时,用WebElement对象的text属性,获取文本内容,就会有问题。
出现这种情况,可以尝试使用 element.get_attribute('innerText')
,或者 element.get_attribute('textContent')