zoukankan      html  css  js  c++  java
  • python+selenium Remote 启动firefox报错总结

    #coding=utf-8
    from selenium.webdriver import Remote
    
    dr = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                desired_capabilities={'platform':'ANY',
                                    'browserName':'firefox',
                                    'version':'',
                                    'javascriptEnabled':True
                                    }
                )
    dr.get("https://www.baidu.com")
    dr.find_element_by_id("kw").send_keys("grid")
    dr.find_element_by_id("su").click()
    print("ok")
    dr.quit()

    这一段代码一直报错,也不知道原因,网上查看各种方法验证之后都不行,改来改去,最后我也不知道那种方法改好的,只能把所有遇到问题记录下来。报错当时也没有截图,只能回忆列一下大概的报错信息:

    1、第一次排查,发现浏览器的安装路径没有放到环境变量中,更正后,报错

    2、有网友的解决办法是:打开ie-设置-internet选项-局域网lan设置-代理服务器。这一项不勾选。这个位置我的ie本来也没勾选。所以此解决方法不行

    3、错误提示:The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/ge... The latest version can be downloaded fromhttps://github.com/mozilla/ge...

    下载之后将geckodriver解压放在安装目录,加入path环境变量后运行依然报错

    4、error [10061]的报错。忘记运行selenium server了

    5、运行时浏览器被重复打开多次报错,

    解决方法是:代码中添加‘marionette’:False    运行成功。

    以上就是我遇到的问题,具体的报错信息记不清楚了,大概记一下,也算是做个教训。

    以后遇到报错,直接截图,问题解决后整理归档。

    郁闷的是:问题解决了,我却不知道到底是那种方法解决的。

    总结:

    python+selenium 使用Remote启动浏览器:

    1、先启动selenium server

    2、更改代码如下

    #coding=utf-8
    from selenium.webdriver import Remote
    
    dr = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                desired_capabilities={'platform':'ANY',
                                    'browserName':'firefox',
                                    'version':'',
                                    'javascriptEnabled':True,
                                    'marionette':False 
                                    }
                )
    dr.get("https://www.baidu.com")
    dr.find_element_by_id("kw").send_keys("grid")
    dr.find_element_by_id("su").click()
    print("ok")
    dr.quit()

    ‘marionette’:False    marionette是python客户端允许运行远程控制基于gecko的浏览器或设备运行一个marionette服务器,包括桌面firefox和firefox os。该参数为firefox特用。

    上述关于marionette解释,参考于虫师selenium2自动化测试的书,在p242

  • 相关阅读:
    2020/2/14
    2020/2/13
    《人类简史》
    2020/2/12
    bzoj3157国王奇遇记(秦九韶算法+矩乘)&&bzoj233AC达成
    [noip科普]关于LIS和一类可以用树状数组优化的DP
    [uva11722&&cogs1488]和朋友会面Joining with Friend
    Bzoj2154 Crash的数字表格 乘法逆元+莫比乌斯反演(TLE)
    NOIP2016滚粗记
    bzoj2228[ZJOI2011]礼物(gift)
  • 原文地址:https://www.cnblogs.com/tianzhouDAN/p/6187811.html
Copyright © 2011-2022 走看看