zoukankan      html  css  js  c++  java
  • selenium

    经常在操作某些输入框时,需要清除之前输入的内容,但是clear()方法有时会不生效,解决方案如下:

    方案一:使用双击

    1. 适用于英文、数字等

    2. 中文不太适用,因为中文双击的话不能全选中

    driver.get('https://www.baidu.com/')
    ele_input = driver.find_element_by_id('kw')
    ele_input.send_keys('zhangyang')
    time.sleep(2)
    
    ActionChains(driver).double_click(ele_input).perform()  # 使用双击清空文本框
    
    ele_input.send_keys('zhangyang2')

    方案二:

    键盘操作,全选-删除

    (mac和windows对键盘操作不一致)

    方案三:使用万能的js

     1. 这个方案适合于传统的行为驱动模式开发的页面,即通过改变dom元素来改变页面

     2. 但对于react这种数据驱动开发的页面,即通过数据来改变页面(数据在js中),就不太适用

    driver.get("https://www.baidu.com")
    
    driver.find_element_by_id('kw').send_keys('zhangyang')
    driver.find_element_by_id('su').click()
    time.sleep(2)
    
    js = 'document.querySelector("#kw").value="";'  # 使用js清空
    # js = 'document.getElementById("kw").value="abcd";'  # 使用js修改input的值
    driver.execute_script(js)
    ele = driver.find_element_by_xpath('//*[@id="nest-messages_agencyName"]')
    driver.execute_script('arguments[0].value="aaa"', ele)   # 也可以这样写
  • 相关阅读:
    未能加载文件或程序集BUG系列
    寄语
    65. Valid Number
    56. Merge Intervals
    sublime text3 anaconda 插件报错
    42. Trapping Rain Water
    windows 下win+r无效
    93. Restore IP Addresses
    32. Longest Valid Parentheses
    48 Rotate Image
  • 原文地址:https://www.cnblogs.com/xiaochongc/p/14152143.html
Copyright © 2011-2022 走看看