driver =webdriver.Remote(
command_executor=’http://127.0.0.1:4444/wd/hub’,

desired_capabilities=DesiredCapabilities.CHROME)

’http://127.0.0.1:4444/wd/hub’可以看作一个字符串,对其进行参数化没有什么困难。
那么 DesiredCapabilities.CHROME 里面包含了什么东西呢?

>>> fromselenium.webdriver.common.desired_capabilitiesimport DesiredCapabilities
>>> p=DesiredCapabilities.CHROME
>>> printp
{'platform': 'ANY', 'browserName': 'chrome', 'version': '', 'javascriptEnabled':True}

我们将 DesiredCapabilities.CHROME 的内容打印输出,发现其本身是一个字典。
'platform':'ANY' 平台默认可以是任何(window,MAC,android)。
'browserName':'chrome' 浏览器名字是 chrome 。
'version':'' 浏览器的版本默认为空。
'javascriptEnabled':True javascript 启动状态为 True


pythonwebdriverAPI 提供了不同平台及浏览器的参数:

ANDROID = {'platform': 'ANDROID', 'browserName': 'android', 'version': '', 'javascriptEnabled': True}

CHROME = {'platform': 'ANY', 'browserName': 'chrome', 'version': '', 'javascriptEnabled': True}

FIREFOX = {'platform': 'ANY', 'browserName': 'firefox', 'version': '', 'javascriptEnabled': True}

HTMLUNIT = {'platform': 'ANY', 'browserName': 'htmlunit', 'version': ''}

HTMLUNITWITHJS = {'platform': 'ANY', 'browserName': 'htmlunit', 'version': 'firefox', 'javascriptEnabled': True}

INTERNETEXPLORER = {'platform': 'WINDOWS', 'browserName': 'internet explorer', 'version': '', 'javascriptEnabled': True}

IPAD = {'platform': 'MAC', 'browserName': 'iPad', 'version': '', 'javascriptEnabled': True}

IPHONE = {'platform': 'MAC', 'browserName': 'iPhone', 'version': '', 'javascriptEnabled': True}

SAFARI = {'platform': 'ANY', 'browserName': 'safari', 'version': '', 'javascriptEnabled': True}

PHANTOMJS = {'platform': 'ANY', 'browserName': 'phantomjs', 'version': '', 'javascriptEnabled': True}

OPERA = {'platform': 'ANY', 'browserName': 'opera', 'version': '', 'javascriptEnabled': True}

我们现在要做的是对 browserName 参数进行参数化,传入不同的浏览器,使脚本在不同的浏览器下运 行。要想运行脚本之前我们需要先启动 seleniumserver:

#coding=utf-8

import time from selenium

import webdriver fromselenium.webdriver.common.desired_capabilities import DesiredCapabilities

#浏览器数组

lists=['chrome','internet explorer']

#通过不同的浏览器执行脚本

for browser in lists:

  print browser

  driver = webdriver.Remote(

                       command_executor='http://127.0.0.1:5555/wd/hub',

                       desired_capabilities={'platform': 'ANY', 'browserName':browser, 'version': '', 'javascriptEnabled': True })
   driver.get("http://www.youdao.com")

   driver.find_element_by_name("q").send_keys("hello")

   driver.find_element_by_id("qb").click()

   time.sleep(2)
   driver.close()