微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Selenium Web元素操作

我们定位到Web页面元素之后,可以对元素进行一系列的操作,实现跟页面的交互。包括点击、文本输入、元素属性获取等。常用的方法列举如下:

方法描述
click()点击元素
send_keys(*value)用于向EditText(可编辑文本控件)输入文本;还可以用于输入文件(如百度图片搜索输入图片
get_attribute(name)获取元素属性
is_selected()元素是否被选择,一般用于判断checkBox 或者 radio 控件状态
screenshot(filename)截取元素

点击、输入文本

  1. 打开 https://www.baidu.com/
  2. 搜索框输入“test”
  3. 点击“百度一下”
  4. 关闭网页

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')
--THE END--

文章标题:Selenium Web元素操作
本文作者:hiyo
本文链接https://hiyong.gitee.io/posts/selenium-webelement-operate/
欢迎关注公众号:「测试开发小记」及时接收最新技术文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐