zoukankan      html  css  js  c++  java
  • selenium---勾选框处理

      在web自动化中,会遇到一些勾选框的操作,在正常操作下,我们只要点击勾选框即是勾选,再次点击则取消勾选,那selenium如何操作勾选框呢? 其实和正常一样,我们只要定位到勾选框后,就可以进行点击。

    勾选框

    首先我们看下什么是勾选框?勾选框在HTML中长什么样子,这样才能方便我们进行定位操作。。

    <html>
    <body>
    <form >
    <p>请选择你关注测试-安静了吗?</p>
      <p><input type="checkbox" name="vehicle" value="Bike" /> 已经关注了!/p>
      <p><input type="checkbox" name="vehicle" value="Car"/> 没有关注!</p>
      <p><input type="checkbox" name="vehicle" value="name"/> 已经关注,并跟着安静学习一段时间了</p>
    </form>
    
    </body>
    </html>

    定位方法:

    1、勾选一个:通过元素定位方式选择value值,然后进行定位进行点击操作

    2、全部勾选:定位共同参数,通过find_elements的方法循环全部点击

    思路就是定位到想要勾选的内容,然后直接点击就完事了,这里要属于find_elements不能直接点击,因为定位的是复数,selenium不知道点击哪一个,我们可以通过for循环进行点击

    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    path = r'E:webcheckbox.html'
    driver.get(path)
    # 定位全部勾选框,然后进行循环点击
    t = driver.find_elements_by_xpath('//*[@type="checkbox"]')
    for i in t:
        i.click()
        time.sleep(2)
    # 取消定位第一个
    driver.find_element_by_css_selector('input[value=Bike]').click()

    判断勾选框是否选中

    勾选框,有的页面刚进去其实就已经勾选了,我们可以进行判断,如果勾选了,我们就直接进行下面的操作,哪么问题来了?我们如何判断元素是否被勾选?这里可以理解成元素是否被选中,哪么在selenium中是不是有个判断元素有没有被选中的方法? is_selected() 表示判断元素有没有被选中,如果选中打印True,没有选中打印False

    from selenium import webdriver
    driver = webdriver.Chrome()
    path = r'E:webcheckbox.html'
    driver.get(path)
    t = driver.find_element_by_css_selector('input[value=name]').click()
    # 判断是否被选中
    if driver.find_element_by_css_selector('input[value=Bike]').is_selected():
        print('勾选框已经选中')
    else:
        print('勾选框没有选中')

    这里安静判断没有被选中的,可想而知,结果是“勾选框没有选中”

    安静通过小小的例子,认识了什么是勾选框以及如何定位到勾选框和判断勾选框是否选中的情况,最多的还是需要大家多写多练,这样才能孰能生巧。

    安静写的文章如果对您有帮助,点个关注,持续更新。不懂的或者写错的地方,可以下方进行留言。

  • 相关阅读:
    TCP的发送系列 — 发送缓存的管理(二)
    TCP的发送系列 — 发送缓存的管理(一)
    TCP的发送系列 — tcp_sendmsg()的实现(二)
    TCP的发送系列 — tcp_sendmsg()的实现(一)
    YTU 2618: B 求类中数据成员的最大值-类模板
    YTU 2617: B C++时间类的运算符重载
    YTU 2616: A代码完善--简易二元运算
    YTU 2615: AB编程题--世界杯小组赛
    YTU 2614: A代码完善--系统日期
    YTU 2611: A代码完善--向量的运算
  • 原文地址:https://www.cnblogs.com/qican/p/13534539.html
Copyright © 2011-2022 走看看