• selenium python grid


      学习自动化一直都是在本机操作,感觉这样能够减少工作量确实很少。最近研究了一下分布式操作。

      开始的想法是,我在一台机器上启动脚本,然后让脚本在不同机器的不同版本的浏览器上进行跑脚本。

      需要准备的东西:

        1、jdk,以及环境变量配置好。在cmd下运行javac如果没有报错就行。

        2、python开发环境。

        3、selenium 安装好

        4、下载 selenium-server-standalone-2.45.0.jar的包。这个版本自己看,我用的是这个版本,主要是用46的报错

      一切准备好了,我用的三台机器。60机器作为我跑脚本的机器,89、162都是平台。

      第一、(我按照网上说的方法貌似有的失败。)最后我是在60这台机器上将在命令行cmd窗口切换到我jar包所在文件夹,然后执行命令:java -jar selenium-server-standalone-2.45.0.jar -role hub     (java -jar selenium-server-standalone-2.45.0.jar -port 4000 -role hub -nodeTimeout 600) 他默认起的是4444端口,这个可以自己定义的,这里是启动中心节点,我认为就是在哪台机器作为跑脚本的机器。

      第二、启动node:同样cmd切换到jar包目录。java -jar selenium-server-standalone-2.45.0.jar -10.2.4.60 -port 4002 -role webdriver -hub http://10.2.4.60:4000/grid/register -browser browserName=firefox,platform=WINDOWS  这个指定了执行的浏览器以及平台的。可以不要-browser后面的。(在启动中心节点的时候启动了selenium server的)

      第三部、在中心节点机器的浏览器中输入http://localhost:4000/grid/console 查看链接的信息,如果有node机器信息那么就正确了

      第四部、联调,看在中心节点执行脚本能否在node机器上运行,我一直在这里纠结了很久都不行,直接贴事例代码:

      

    __author__ = 'pc'
    from selenium.webdriver import Remote
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    list =['http://10.2.4.89:4002/wd/hub','http://10.2.4.162:4001/wd/hub']
    for host in list:
        driver = Remote(command_executor=host,
                        desired_capabilities=DesiredCapabilities.FIREFOX)
        driver.get('http://www.baidu.com')
        driver.find_element_by_id('kw').send_keys('selenium python')
        driver.find_element_by_id('su').click()
        driver.quit()

    我纠结了很久才调通的,还有很多需要扩展的地方,但是觉得只要调试通了一切都好说了。

      

  • 相关阅读:
    mysql关联查询
    文本框,下拉框,单选框只读状态属性
    sql索引实例
    sql视图实例
    SQL触发器实例
    存储过程实例
    sql 、linq、lambda 查询语句的区别
    LINQ中的一些查询语句格式
    面试宝典
    SQL常用语句
  • 原文地址:https://www.cnblogs.com/Mushishi_xu/p/4651956.html
Copyright © 2020-2023  润新知