用By类定位

许多属性都可以用来定位元素,参看 (4.元素定位)查看更多实例

class selenium.webdriver.common.by.By

支持的定位策略:

classmethod is_valid(by)

CLASS_NAME = 'class name'

CSS_SELECTOR = 'css selector'

ID = 'id'

LINK_TEXT = 'link text'

NAME = 'name'

PARTIAL_LINK_TEXT = 'partial link text'

TAG_NAME = 'tag name'

XPATH = 'xpath'

期望的功能

请到 2.开始 查看期望功能的实例

class selenium.webdriver.common.desired_capabilities.DesiredCapabilities

默认支持的期望功能的集合

在请求远程Web驱动连接selenium server 或者selenium grid时,首先一点要先创建一个期望功能的对象,请看实例:

from selenium import webdriver
selenium_grid_url = "http://198.0.0.1:4444/wd/hub"

# Create a desired capabilities object as a start point.
capabilities = DesiredCapabilities.FIREFOX.copy()
capabilities['platform'] = "WINDOWS"
capabilities['version'] = "10"

# Instantiate an instance of Remote WebDriver with the desired capabilities.
driver = webdriver.Remote(
    desired_capabilities=capabilities,
    command_executor=selenium_grid_url)

注意,请记得使用在DesiredCapabilities上使用.copy(),避免变更全局类实例带来的副作用

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

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

EDGE = {'platform': 'WINDOWS', 'browserName': 'MicrosoftEdge', 'version': ''}

FIREFOX = {'platform': 'ANY', 'browserName': 'firefox', 'version': '', 'marionette': False, '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}

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

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

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

实用工具

一些Utils方法。

selenium.webdriver.common.utils.free_port()

用socket开放一个空闲的端口

selenium.webdriver.common.utils.is_connectable(port)

试图连接服务器上的端口看看是否可用

selenium.webdriver.common.utils.is_url_connectable(port)

试图连接一个HTTP服务器的指定端口,看是否成功返回