首页 > 其他分享 >selenium常用的元素操作

selenium常用的元素操作

时间:2023-03-16 17:47:37浏览次数:50  
标签:常用 selenium 元素 driver element find 按钮 id

webdriver常用的元素操作

1、clear() 清除元素的输入内容

2、send_keys() 在元素上模拟按键输入

3、click() 单击元素

4、submit() 提交表单,作用同click

# chrome浏览器驱动存放地址
path = "D:/login/chromedriver.exe"

# 打开Chrome浏览器
driver = webdriver.Chrome(path)

# 浏览器中打开地址
driver.get("https://www.baidu.com")

# 1、clear() 清除元素的输入内容
driver.find_element_by_id("kw").clear()

# 2、send_keys() 在元素上模拟按键输入
driver.find_element_by_id("kw").send_keys("selenium")

# 3、click() 单击元素
driver.find_element_by_id("su").click()

# 4、submit() 提交表单,作用同click
driver.find_element_by_id("kw").submit()

5、size 返回元素的尺寸

# 5、size 返回元素的尺寸
size = driver.find_element_by_id("kw").size

# 打印元素尺寸
print(size)

image


6、text 获取元素的文本内容

# 6、text 获取元素的文本内容(百度首页的百度热搜)
text = driver.find_element_by_css_selector("#hotsearch-content-wrapper > li:nth-child(2) > a > span.title-content-title").text
# li:nth-child(2)
# :nth-child(n) 选择器匹配属于其父元素的第 n 个子元素,不论元素的类型。


# 打印获取的文本内容
print(text)

image

image


7、get_attribute() 获取元素的属性值

# 7、get_attribute()获取元素的属性值,括号中填写获取的属性名
# 返回元素的属性值,可以是id,name,type或元素拥有的其他任意属性,没有该属性则返回None
attribute = driver.find_element_by_id("kw").get_attribute('name')
# 获取百度输入框 name 的属性值为 wd

# 打印属性值
print(attribute)

image

image


8、is_displayed() 判断元素在页面中是否可见,该方法返回一个布尔值

  • is_displayed() 获取为true的结果
# is_displayed()方法的返回类型是布尔值。因此,通过获取这个值,我们可以验证网页元素是否存在于网页上。
# 1、查找百度首页的设置按钮
result = driver.find_element_by_css_selector("#s-usersetting-top").is_displayed()

# 打印响应的结果,设置的按钮能获取到,所以返回的true
print(result)

image
image

  • is_displayed() 获取为false的结果
# is_displayed()方法的返回类型是布尔值。因此,通过获取这个值,我们可以验证网页元素是否存在于网页上。(html代码存在,但在页面中无元素)
# 1、查找百度首页的登录下方的元素
result = driver.find_element_by_css_selector("#s-user-setting-menu").is_displayed()

# 打印响应的结果,选中的元素在页面中无法找到,所以返回的false
print(result)

image
image

  • is_displayed() 获取的元素在html中不存在则报错
# 在百度首页查找id为kk的元素,找不到此元素则报错
result = driver.find_element_by_id("kk").is_displayed()
print(result)

image


9、is_selected() 判断元素是否选中状态,该方法返回一个布尔值

# 百度首页的搜索设置验证搜索框提示是否勾选
driver = webdriver.Chrome("../login/chromedriver.exe")
driver.get("https://www.baidu.com")

# 根据id获取百度首页的设置按钮
element = driver.find_element_by_id("s-usersetting-top")

# 使用ActionChains的move_to_element鼠标悬停在一个元素上
ActionChains(driver).move_to_element(element).perform()
# 等待2秒钟
time.sleep(2)

# 根据css定位找到设置悬浮框的搜索设置并点击
driver.find_element_by_css_selector("#s-user-setting-menu > div > a.setpref.first > span").click()
# 等待2秒钟
time.sleep(2)

# 根据id定位到搜索框提示的显示勾选元素,通过is_selected()判断是否勾选,返回true或者false
select1 = driver.find_element_by_id("s1_1").is_selected()
# 打印此元素是否勾选的结果,返回true表示选中
print("select1的按钮是否勾选:{}".format(select1))

# 根据id定位到搜索框提示的不显示勾选元素,通过is_selected()判断是否勾选,返回true或者false
select2 = driver.find_element_by_id("s1_2").is_selected()
# 打印此元素是否勾选的结果,返回false表示选中
print("select2的按钮是否勾选:{}".format(select2))

image

image

image


10、is_enabled() 判断元素是否在网页上被启用,该方法返回一个布尔值

使用LambdaTest的Selenium Playground网站,在这里,我们可以看到 "生成文件"按钮被禁用,除非在输入数据部分输入任何数值。
image

  • Generate File按钮上方的输入框未输入内容使用is_enabled()获取按钮是否可点击状态,返回false:
# 判断元素是否在网页上被启用,该方法返回一个布尔值
# 例如:判断页面中的按钮是否可点击(按钮必须在某种情况下才能点击)

# 打开Chrome浏览器
driver = webdriver.Chrome("../login/chromedriver.exe")
# 浏览器访问指定的地址
driver.get("https://www.lambdatest.com/selenium-playground/generate-file-to-download-demo")

# 通过id定位Generate File按钮,用is_enabled()获取按钮是否可点击的状态
enable = driver.find_element_by_id("create").is_enabled()
# 打印按钮是否可点击的状态
print(enable)

image
image

  • Generate File按钮上方的输入框输入内容使用is_enabled()获取按钮是否可点击状态,返回true:
# 打开Chrome浏览器
driver = webdriver.Chrome("../login/chromedriver.exe")
# 浏览器访问指定的地址
driver.get("https://www.lambdatest.com/selenium-playground/generate-file-to-download-demo")

time.sleep(2)
# 通过id定位到Generate File按钮上方的输入框,并在输入框中输入1
driver.find_element_by_id("textbox").send_keys("1")

# 通过id定位Generate File按钮,用is_enabled()获取按钮是否可点击的状态
enable = driver.find_element_by_id("create").is_enabled()
# 打印按钮是否可点击的状态
print(enable)

image
image


总结:在Selenium中,isDisplayed()用于确保网页上的网页元素的可见性。isEnabled()方法用于确保我们试图与之互动的元素在网页上是否被启用。如果该元素没有被启用,那么我们就不能继续进行测试,可能会返回错误的异常。isSelected()方法是用来验证网页上的元素是否已经被选中。这可以应用于单选按钮和复选框元素。这三个方法的返回类型都是布尔值,根据它我们可以断定网页元素的状态。

标签:常用,selenium,元素,driver,element,find,按钮,id
From: https://www.cnblogs.com/lc-blogs/p/17222065.html

相关文章

  • 力扣203 删除链表元素
    两种做法:第一种是在原链表的基础上直接删除。此时需要先把链头节点特判一下。第二种是在原链表的表头再加一个节点,这样代码简单,并且原来的头节点就不需要特判了。注意:循......
  • 【python】combinations函数遍历列表内元素不同组合
    在参数调优的过程中,不同个体数的样本组合需要计算,但是一个一个用for来穷尽组合的可能显得太过笨拙,查到可以用itertools中的combinations模块来处理类似的问题:fromiterto......
  • Idea常用快捷键
    Idea快捷键"删除当前行"//Ctrl+Y"复制当前行"//Ctrl+D"注释此行或取消注释"//Ctrl+/"导入该行需要的类"//Alt+Enter"快速格式化代码"//Ctrl+Alt......
  • python datetime模块常用功能
    时间的转换:时间戳转日期(datetime.date.fromtimestamp(1234567896)),返回日期年-月-日时间戳转年月日时分秒(datetime.datetime.fromtimestamp(123456789......
  • 点云数据文件常用格式
    OFF-ObjectFileFormatPLY-PolygonFileFormatalsoknownastheStanfordTriangleFormatPTS-LaserscandataformatPTX-ASCIIbasedinterchangeforma......
  • CMake常用变量和命令
    预定义变量PROJECT_NAME:通过project()指定的项目名称PROJECT_SOURCE_DIR:工程的根目录PROJECT_BINARY_DIR:执行cmake命令的目录CMAKE_CURRENT_SOURCE_DIR:当前C......
  • Python中列表去重常用的3种方法!
    在Python中,列表去重的方法有很多种,其中比较常用的方法有3种:1、利用字典的【fromkeys()】和【keys()】方法去重;2、集合的可迭代方法;3、用for循环。这3种方法希望大家可......
  • WebDriver | Selenium
    WebDriver|Seleniumhttps://github.com/seleniumhq/selenium 源码https://www.nuget.org/packages/Selenium.WebDriver#versions-body-tab nuget WebDriverdrive......
  • JSON的常用方法
    1、JSON.parse()JSON.parse()可以将JSON格式的字符串解析或成JS中的对应值       2、JSON.stringify() JSON.stringify()可以将JS的基本数据类型、对......
  • Redis常用命令
    redis数据库一、概述:redis数据库是一个内存数据库,基于内存进行数据存储的,redis数据库访问速度特别快。因此,redis通常被用于缓存系统、存储大量活跃数据,可以极大地提......