zoukankan      html  css  js  c++  java
  • selenium+Python(Js处理click失效)

        有时候元素明明已经找到了,运行也没报错,点击后页面没任何反应。这种问题遇到了,是比较头疼的,因为没任何报错,只是 click 事件失效了。

    问题:

    1.在练习百度的搜索设置按钮时,点保存设置按钮,alert 弹出没弹出(代码没报错,只是获取 alert 失败)。

    点击父元素解决问题

    1.遇到这种问题,应该是前面操作 select后导致的后遗症(因为我注释掉 select那段是可以点击成功的)
    2.第一种解决办法,先点击它的父元素一次,然后再点击这个元素

    3.实现代码如下

    js 直接点击解决问题

    1.遇到这种诡异问题,是时候出绝招了:js 大法
    2.用 js 直接执行点击事件

    完整代码:

    # coding:utf-8
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support.select import Select
    import time
    driver = webdriver.Firefox()
    driver.get("https://www.baidu.com")
    time.sleep(5)
    mouse = driver.find_element_by_link_text("设置")
    ActionChains(driver).move_to_element(mouse).perform()
    time.sleep(3)
    driver.find_element_by_link_text("搜索设置").click()
    time.sleep(3)
    s = driver.find_element_by_id("nr")
    Select(s).select_by_visible_text("每页显示50条")
    # 方法一,先点击父元素
    #driver.find_element_by_id("gxszButton").click()
    #driver.find_element_by_class_name("prefpanelgo").click()
    # 方法二,JS直接点击
    js = 'document.getElementsByClassName("prefpanelgo")[0].click()'
    driver.execute_script(js)
    driver.quit()
    

      

  • 相关阅读:
    Java 中常用的数据源
    Restful风格API接口开发springMVC篇
    Maven的作用到底是什么
    Java中常用的数据源
    数据库死锁问题 及 解决方法
    string中执行sql语句
    提高mysql千万级大数据SQL查询优化30条经验
    JAVA对象转换JSON
    oracle分页查询
    jdk8环境变量 jdk8图解安装 java8安装
  • 原文地址:https://www.cnblogs.com/101718qiong/p/7987133.html
Copyright © 2011-2022 走看看