zoukankan      html  css  js  c++  java
  • Selenium模拟操作中按钮点击(click) 失效解决方法

    在使用selenium模拟操作时经常遇到一些使用原始方法解决不了的问题。
    click失效问题

    曾经多次遇到元素click()失败的情况,经典的例子就是某网站的登录框。

    一般遇到click失败时我的一般处理方法是改用send_keys(Keys.ENTER),直接用发回车键,简单粗暴。

    但是某网站的登录框,直接定位按钮元素click无效,发送回车键也无效,分析应该是焦点问题,但是试了多种方法也不成。

    经过实验,当焦点在登录框的用户文本框中,按回车会依次从用户名框、密码框到提交按钮。

    定位用户名文本框,发送多个回车键,顺利登录。

    当然麻烦点调用js也可以实现。

    这种问题在Spynner、Ghost.py中也会出现,应当是某种前端框架或者webkit内核的问题。

    文本框输入内容失败

    这种问题同样是在某网站登录框中遇到的。
    最常见的文本框输入内容出问题是文本框的placeholder造成的。

    解决方法:先用element.clear()清除原来文本框的placeholder,再用 element.send_keys(content)发送内容。

    但是这种方法仍然处理不了,只能祭出execute_script了。

    我给一个简单的代码来演示一下:

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys

    driver = webdriver.Chrome()
    url = "https://www.baidu.com"
    driver.get(url=url)
    import time
    time.sleep(3)

    这两种都是可以的 点击事件 一种是键盘点击, 第二种 就祭出我们的execute_script 执行js, 简单粗暴

    driver.find_element_by_id("kw").send_keys("天下")
    time.sleep(3)
    driver.find_element_by_id("su").send_keys(Keys.ENTER)

    js = 'document.getElementById("su").click();'

    driver.execute_script(js)

    这两种方法都是可以的,我们这里面没有采用原始的方式 .click()

    当然 这里面采用原始的 click() 也是可以的, 只不过是举一个测试的例子

  • 相关阅读:
    unity, 显示像素图,以及iOS下像素图变模糊解决办法
    unity, iOS集成微信
    unity, PlayerPrefs.GetInt(key,defaultValue)
    unity, 对于Debug.Log输出的log,可以双击定位到代码
    unity, UGUI Image shader
    unity, use particleSystem with UGUI
    unity, UGUI Text fadeIn
    unity, write/read txt file
    unity, get Canvas Scaler referenceResolution
    unity, change parent and keep localPosition or worlPosition
  • 原文地址:https://www.cnblogs.com/wwyydd/p/14416857.html
Copyright © 2011-2022 走看看