【UI自动化】selenium元素定位各种框实例操作大全

这篇具有很好参考价值的文章主要介绍了【UI自动化】selenium元素定位各种框实例操作大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<Text>:元素是input标签但是不能输入内容

第五个input输入框,disabled属性被设置为 "true"它被禁用了无法接收用户的输入。
第六个input输入框,readonly属性指示该元素是否只读,如果设置了该属性,表示该元素只读不可编辑。因此,当readonly属性存在时,该输入框是不可编辑的,不能输入内容。

 实例图示如下:

selenium 定位输入框,软件测试,自动化,python,ui,selenium

这里我们可以使用使用execute_script方法来执行JavaScript脚本,从而移除元素的disabledreadonly属性,然后输入内容。具体代码如下:

# 使用execute_script处理元素的disabled和readonly属性
d.execute_script("arguments[0].removeAttribute('disabled')", d.find_element(By.NAME, "textdisabled"))
d.execute_script("arguments[0].removeAttribute('readonly')", d.find_element(By.NAME, "textreadonly"))
d.find_element(By.NAME, "textdisabled").send_keys("第五个输入内容")
d.find_element(By.NAME, "textreadonly").send_keys("第六个输入内容")

这样就解决了元素是input标签但是不能输入的问题了。

<textarea>:输入框在form表单下处于同一级别,右边红框两个textarea标签对应左边绿框两个多行输入框。由于第二个多行输入框只有textarea标签可以定位,与第一个不好区分,这里就只能采用XPATH方法了。

selenium 定位输入框,软件测试,自动化,python,ui,selenium

具体代码如下:

d.find_element(By.NAME,'ta1').send_keys('多行输入框内容1')
d.find_element(By.XPATH,'//form[@name="f1"]/textarea[2]').send_keys('多行输入框内容2')

Checkbox : 复选框定位selenium 定位输入框,软件测试,自动化,python,ui,selenium

根据右侧HTML发现第四个复选框其实value没有赋值,所以只能只用XPATH定位。具体代码如下:

d.find_element(By.CSS_SELECTOR,'input[value="cv1"]').click()
d.find_element(By.CSS_SELECTOR,'input[value="cv2"]').click()
d.find_element(By.CSS_SELECTOR,'input[value="cv3"]').click()
d.find_element(By.XPATH,'//form/input[4]').click()

Radio :单选框定位

selenium 定位输入框,软件测试,自动化,python,ui,selenium这里两个单选框都有name属性,但对应的值是一样的,所以这里我们采用CSS_SELECTOR方法进行定位,代码如下:

d.find_element(By.CSS_SELECTOR,'input[value="rv1"]').click()
d.find_element(By.CSS_SELECTOR,'input[value="rv2"]').click()

以下是后面会更新的内容,今天就到此为止了。后续有时间再持续更新~

Password:密码框

经观察发现这两个密码框已经不在初始化界面之内了,需要拖动浏览器右侧边的滑动条才能显示出来,否则将会找不到元素。selenium 定位输入框,软件测试,自动化,python,ui,selenium

第一个密码框很好定位,可以直接用NAME方法来定位,但是第二个没有唯一的属性,只能使用XPATH了。注意这里的标签的索引位置是从1开始数。如图:selenium 定位输入框,软件测试,自动化,python,ui,selenium

#第一个密码框,输入内容:1
driver.find_element(By.NAME,'p1').send_keys('1')
# 定位到密码框的第二个元素
pwdinput= driver.find_element(By.XPATH, '//form[@name="f1"]/input[8]')
# 使用JavaScript代码将元素滚动到可视区域
driver.execute_script("arguments[0].scrollIntoView();", pwdinput)
# 输入内容:12
pwdinput.send_keys('12')

这里需分成三步执行,开始我写成一句直接报错。代码如下:

driver.execute_script("arguments[0].scrollIntoView();", driver.find_element(By.XPATH, '//form[@name="f1"]/input[8]').send_keys('12'))

#报错:selenium.common.exceptions.JavascriptException: Message: A JavaScript exception occured: null is not an object (evaluating 'arguments[0].scrollIntoView')

代码中依然遇到了JavaScript异常,错误信息表明arguments[0]的值为null,导致无法调用scrollIntoView方法。所以拆分成三步,1.首先定位元素,2.然后将其滚动到可视区域,3.最后再执行send_keys操作。并且还需要注意,send_keys操作应该在输入框元素成功滚动到可视区域之后进行。

Select:选择框selenium 定位输入框,软件测试,自动化,python,ui,selenium

首先,我们导入Select模块。

from selenium.webdriver.support.ui import Select, WebDriverWait

 根据图示,要先拖动滑动条才能显示该元素,然后再进行操作选择框。 代码如下:

#定位该元素
find_slt = driver.find_element(By.XPATH, '//form[@name="f1"]/select[1]')
#使用JavaScript代码将元素滚动到可视区域
driver.execute_script("arguments[0].scrollIntoView();", find_slt)
# 使用Select方法
Select(driver.find_element(By.XPATH,'//form[@name="f1"]/select[2]')).select_by_index(2)
Select(driver.find_element(By.XPATH,'//form[@name="f1"]/select[3]')).select_by_index(2)

Select类中相关方法具体详见: Select类中相关方法

Button:按钮selenium 定位输入框,软件测试,自动化,python,ui,selenium

操作代码如下: 

b=driver.find_element(By.CSS_SELECTOR,'[value="button value"]')
#由于这里的按钮只有点击效果,没有直观的反馈。增加了判断。
if b.is_enabled():
b.click()
    print("Button clicked!")
else:
    print("Button is not enabled")

Reset Button:重置按钮selenium 定位输入框,软件测试,自动化,python,ui,selenium

find_rbutton=driver.find_element(By.XPATH,'//form[@name="f1"]/input[13]')
# 使用JavaScript代码将元素滚动到可视区域
driver.execute_script("arguments[0].scrollIntoView();", find_rbutton)
#先填入内容在输入框内
find_rbutton.send_keys('XPP 是摄影狮🦁')
#定义一个变量来获取输入的内容,便于后面判断。
gettext=find_rbutton.get_attribute('value')
#点击重置
driver.find_element(By.CSS_SELECTOR,'[value="Reset Me"]').click()
#判断内容是否被清空
reset_text = find_rbutton.get_attribute('value')
if gettext == reset_text:
    print("输入内容已被已清空")
else:
    print('输入内容未被清空')

按钮双击 

selenium 定位输入框,软件测试,自动化,python,ui,selenium

需要先导入ActionChains模块

from selenium.webdriver import ActionChains
#拖动滑动条到可以显示该元素为止
find_botton1=driver.find_element(By.XPATH,'//button[text()="Button Two"]')
driver.execute_script("arguments[0].scrollIntoView();",find_botton1)
#双击
ActionChains(driver).double_click(find_botton1).perform()

Submit:提交按钮selenium 定位输入框,软件测试,自动化,python,ui,selenium

#找到该元素
find_submit=driver.find_element(By.CSS_SELECTOR,'[value="Add"]')
driver.execute_script("arguments[0].scrollIntoView();",find_submit)
#点击提交按钮
find_submit.click()
#这时候出现alert弹框,添加一个显示等待
WebDriverWait(driver, 10).until(EC.alert_is_present())
#切换到弹框
submit_alert=driver.switch_to.alert
#关闭弹框
submit_alert.accept()

Image:(待招商)

Search:待招商)文章来源地址https://www.toymoban.com/news/detail-802415.html

到了这里,关于【UI自动化】selenium元素定位各种框实例操作大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python+selenium自动化元素定位防踩坑

    在自动化UI测试过程中常常会在元素定位阶段就踩坑,碰到困扰已久的问题。 以下是个人整理元素定位报错原因和解决方法。 踩坑一:StaleElementReferenceException selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document 异常原因:

    2024年02月06日
    浏览(30)
  • Selenium自动化实现高亮显示定位到的元素

    在调试Selenium脚本中,有时因为操作太快或操作不明显而不清楚是否定位到了正确的元素。我们可用通过执行js为定位到的元素添加样式,来高亮显示定位到的元素。 在Selenim Webdriver中,可以通过driver.exectue_scirpt() 执行JavaScript代码,执行的JavaScript代码是支持传入参数的,甚至

    2024年02月20日
    浏览(30)
  • Web自动化 —— Selenium元素定位与防踩坑

    2. 基本元素定位二 3. CSS选择器定位法一 4. CSS选择器定位法二 浏览器完整的打开-关闭调用流程 5. xpath定位法 1、相对路径定位 //标签名[@属性名=\\\"属性值\\\"] 2、定位某个元素的父级元素 元素xpath/parent::\\\"父级元素标签名\\\" //*[@id=\\\"list\\\"]/dl/a/parent::dl 3、定位一组元素的第几个 xpath[数字

    2024年02月09日
    浏览(31)
  • 【selenium自动化测试】如何定位页面元素,及对页面元素的操作方法

    selenium元素定位 ​selenium定位元素的方式有8种。 fild_element(by,value):by表示使用的定位方式,定位方式可以参见By类。value表示值,例如:根据id定位 By.ID,value=id属性的值。该方法返回元素对象,返回值如下: 这个返回结果说明:返回值为WebElement类的对象,元素在使用方法时

    2024年02月10日
    浏览(44)
  • python ui自动化测试元素定位常用语法

    第一部分是css样式定位方法 选择器 示例 示例说明 CSS . class .intro 选择所有class=\\\"intro\\\"的元素 1 # id #firstname 选择所有id=\\\"firstname\\\"的元素 1 * * 选择所有元素 2 element p 选择所有p元素 1 element,element div,p 选择所有div元素和p元素 1 element   element div p 选择div元素内的所有p元素 1 element

    2024年02月13日
    浏览(31)
  • 【selenium模块-WEB自动化】八大网页元素定位方法(三)

    一、id 定位 标签的 id 具有唯一性,就像人的身份证。 二、name 定位 name 指定标签的名称,在页面中可以不唯一。 三、class 定位 class 指定标签的类名,在页面中可以不唯一。 四、tag 定位 每个 tag 往往用来定义一类功能,所以通过 tag 来识别某个元素的成功率很低,每个页面

    2024年02月15日
    浏览(32)
  • Selenium元素定位全攻略,让你轻松玩转自动化测试!

    一、什么是元素定位 元素定位就是查找HTML元素的过程,操作页面元素之前,首先要对元素进行定位,所以定位是自动化脚本编写的开始。 通常使用find_element或find_elements方法来定位元素(find_element 使用给定的方法定位和查找一个元素;find_elements 使用给定的方法定位和查找所

    2024年02月04日
    浏览(35)
  • 自动化测试学习(六)-selenium定位元素之CSS选择器详细用法

    目录 1.通过class属性定位 2.通过id属性定位 3.通过标签名定位 4.其他方法定位    CSS是一种语言,它可以比较灵活的选择控件的任意属性,一般情况下比Xpath快,下面我们详细介绍CSS的用法。CSS常见语法如下表所示:  选择器 示例 描述 .class .s_ipt 选择class=\\\"s_ipt\\\"的所有元素 #i

    2024年01月17日
    浏览(35)
  • python+selenium的web自动化测试之8种元素定位方式详解

    目录 前言 单一属性定位 通过元素的id 通过元素的name 通过元素的class 通过元素的标签名 通过元素的超链接文本 通过元素的部分超链接文本 XPTH定位 CSS定位 辅助定位工具 ​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确

    2023年04月16日
    浏览(30)
  • 自动化测试之八大元素定位方式(python3.10+selenium4)

    元素的定位是自动化测试核心。要操作一个对象,首先要识别定位或找到这个对象。为了实现网页整体布局,我们先要知道,一个元素,是如何定位到页面上的某个位置的,这就是元素定位。 系统环境 Windows 11 📌 python3.10.5 🔖 selenium 4.8.0 🚩 注意:以下每种定位方式均有一

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包