美文网首页技术干货
selenium有frame时找元素

selenium有frame时找元素

作者: paradise_qing | 来源:发表于2019-10-11 10:33 被阅读0次

    web自动化最麻烦的就是找页面元素了,因为很多时候都找不到。刚开始接触web自动化测试,也是摸索中学习,说说我在测试时遇到有frame时,定位frame里面的元素定位不到的一个问题的解决办法。


    image.png

    一开始使用的是定位出元素,右键-copy-copy xpath去定位


    image.png
    代码实现就是这样:
    image.png

    其中//*[@id="rrapp"]/div[1]/div[2]/div[1]/div/input 就是直接粘贴过来的。运行时总是报错找不到元素:


    image.png

    我仔细查看了浏览器上F12出现的html文件内容,发现有两个id为rrapp的元素,而目前要定位的这个元素,刚好就在第二个id为rrapp的元素下层标签中。
    再来看下直接copy xpath之后的内容//*[@id="rrapp"]/div[1]/div[2]/div[1]/div/input ,当前路径下,找到id为rrapp的元素,之后跟上具体的路径,但是有两个id值一样时,这个xpath肯定就有问题了,后来我又试着用class找,补全元素的路径(就当@id="rrapp"找到的是第一个,补全元素到第一个id为rrapp的路径),通过文字“搜索机构名称”都没有找到。
    之后是一个同事说这个需要切进入frame,去frame里面找元素,于是就试了下,果然可以。


    image.png

    代码实现


    image.png
    这次执行确实是成功了。但是目前的就在frame里面了,如果再要在主页面上点击元素,还需要再切回到主页面,使用方法:
    broswer.switch_to.default_content()
    如果是嵌套的frame框架,返回到上一层的frame,使用方法:
    driver.switch_to.parent_frame()

    类似这个样子:


    image.png

    相关文章

      网友评论

        本文标题:selenium有frame时找元素

        本文链接:https://www.haomeiwen.com/subject/zqftmctx.html