zoukankan      html  css  js  c++  java
  • selenium处理元素定位到了点击无效问题

    在WEB自动化测试过程中,经常会遇到这样的问题:

    元素定位到了,但是点击无效?有人可能会问了,怎么判断元素定位到了,这个问题很好判断

    1.给元素加高亮显示

            self.driver.execute_script(
                "arguments[0].setAttribute('style', arguments[1]);",
                element,
                "border: 2px solid red;" #边框border:2px; red红色
            )

    arguments[0] 这个参数,可以理解为python中的字符串格式化。比如"{}{}".format('aaa','bbbb')

    2.执行点击过程不报错。

    不会报一些找不到元素之类的错误。

    怎么判断元素定位到了,点击没成功(这里说一下,一般是做了点击操作,只是我们直观去判断没有点击成功)

    那么,现在来说一下如何解决这个问题。

    解决问题:

    1.分析一下,默认selenium的点击操作是点元素0,0点坐标,那么我们可以在元素x,y坐标上加5,让点击操作往里一点。

    导入包ActionChains,

    from selenium.webdriver.common.action_chains import ActionChains
    ele = self.find_element(*loc)
    ActionChains(driver).move_to_element(ele).move_by_offset(5,5).click().perform()

    通过如上代码,先定位元素,然后移动到元素,在元素基础上做偏移x,y 5,5然后点击。

    需要注意的是最后的perform()。要加上这个。否则不生效。

    2.通过js去点击元素。

    可以通过dom去定位,或者jquery定位。然后点击操作。这里不具体说明了。可以找度娘。

    3.可以分析代码,如果有直接调用函数的地方,可以通过js直接调用。

    要说明的是,这个方法,一般不可行。因为js前端代码会压缩加密。所以上线后我们看到的是压缩的。

  • 相关阅读:
    把git项目放到个人服务器上
    关于fcitx无法切换输入法的问题解决
    博客变迁通知
    (欧拉回路 并查集 别犯傻逼的错了) 7:欧拉回路 OpenJudge 数据结构与算法MOOC / 第七章 图 练习题(Excercise for chapter7 graphs)
    (并查集) HDU 1856 More is better
    (并查集 不太会) HDU 1272 小希的迷宫
    (并查集 注意别再犯傻逼的错了) HDU 1213 How Many Tables
    (最小生成树 Kruskal算法) 51nod 1212 无向图最小生成树
    (并查集) HDU 1232 畅通工程
    (最小生成树 Prim) HDU 1233 还是畅通工程
  • 原文地址:https://www.cnblogs.com/yhleng/p/10212534.html
Copyright © 2011-2022 走看看