测试人社区

记录一下查找DIV弹窗遇到的坑

最近在写关于企业微信WEB端 - 通讯录 -创建应用功能的自动化代码,

就是这个页面

由于创建应用这个按钮在下面,我的笔记本一页展示不下,所有需要滚动查找元素

滚动查找元素

    self.driver.execute_script("arguments[0].scrollIntoView()", element)

点击元素

    self.driver.execute_script("arguments[0].click()", element)

前面查找元素进行的都很顺利,直到我要查找创建应用 - 选择部门/成员 这个DIV弹窗里面的元素时,遇到了大坑:
按照老步骤,定位到元素,在Chrome - Console 里面调试确认了路径,只找到一个元素,如下图:


在Pycharm 写进元素路径, 调试运行
好家伙,不可点击

最初怀疑是不是frame属性弹窗,又回去检查了一遍,确实是DIV弹窗,但为啥定位不到呢?又试着换了 CSS定位 和Xpath 层级定位, 在Console 调试只找到一个,在Pycharm里运行就是不可点击。后来打印一下元素Is_Display属性,False :confounded:
难怪点击不了。后来想修改元素Is_display属性,在点击;去定位元素,发现没有Is_display属性,这条路也走不通。
后来我用self.driver.find_elements 在路径下查找多个元素,并打印他们的Is_display属性,好家伙,找出6个元素 :flushed:

Selenium 是怎么定位出来的,为啥Console调试只能定位到一个元素 :anguished:
后来用比较笨的方法,把查找出来的6个元素遍历一遍,当Is_dispaly == True 时点击元素, 发现果然可行。

2 Likes

企业微信这类问题挺多,估计是用其他框架自动生成的。

挺多 :flushed: ,这就给代码调试增加不少麻烦 ,
思寒 校长有没有好的建议?