我们定位到Web页面元素之后,可以对元素进行一系列的操作,实现跟页面的交互。包括点击、文本输入、元素属性获取等。常用的方法列举如下:
方法 | 描述 |
---|---|
click() | 点击元素 |
send_keys(**value*) | 用于向EditText(可编辑文本控件)输入文本;还可以用于输入文件(如百度图片搜索输入图片) |
get_attribute(name) | 获取元素属性 |
is_selected() | 元素是否被选择,一般用于判断checkBox 或者 radio 控件状态 |
screenshot(filename) | 截取元素 |
点击、输入文本
- 打开 https://www.baidu.com/
- 搜索框输入“test”
- 点击“百度一下”
- 关闭网页
python代码:
self.driver.find_element_by_id("kw").send_keys("test")
self.driver.find_element_by_id("su").click()
文件上传
input标签可以直接使用send_keys(文件地址)
上传文件
python代码:
self.driver.get("https://image.baidu.com/")
self.driver.find_element_by_xpath("//*[@id='sttb']/img[1]").click()
self.driver.find_element_by_id("stfile").send_keys(u"D:/TestingDemo/img/图片.png")
get_attribute()
比如获取“百度一下”这个button的属性:type、id、value、class
python代码:
baidu = self.driver.find_element_by_id("su")
baidu.get_attribute("type")
baidu.get_attribute("id")
baidu.get_attribute("value")
baidu.get_attribute("class")
is_selected()
在勾选单选框(radio)和复选框(checkBox)的时候,如果已经被选中,再次点击就会反选了,所以在点击之前需要判断一下是否已经选中。可以使用is_selected()方法来判断是否被选中
python代码:
def checkBox_switch(self,switch="ON"):
self.driver = webdriver.Chrome()
sw = self.driver.find_element_by_id('id_of_checkBox').is_selected()
flag = False
if switch == "ON":
flag = True
if sw^flag:
self.driver.find_element_by_id('id_of_checkBox').click()
self.driver.quit()
screenshot()
截取元素
python代码:
self.driver = webdriver.Chrome()
self.driver.get("https://www.baidu.com")
element = self.driver.find_element_by_id("su") # 百度一下的按钮
element.screenshot('D:\\baidu.png')
结果图baidu.png
也可以保存整个页面窗口截图
- get_screenshot_as_base64()
- get_screenshot_as_file(filename)
- get_screenshot_as_png()
- save_screenshot(filename)
self.driver.save_screenshot('baidu.png')
文章标题:Selenium Web元素操作
本文作者:hiyo
本文链接:https://hiyong.gitee.io/posts/selenium-webelement-operate/
欢迎关注公众号:「测试开发小记」及时接收最新技术文章!