7.5 用按类定位


用按类定位

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

selenium.webdriver.common.by.By类

支持的定位策略:

类方法is_valid(by)

CLASS_NAME ='班级名称'

CSS_SELECTOR ='css选择器'

ID ='id'

LINK_TEXT ='链接文字'

NAME ='名称'

PARTIAL_LINK_TEXT ='部分链接文字'

TAG_NAME ='标签名称'

XPATH ='xpath'

期望的功能

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

selenium.webdriver.common.desired_capabilities.DesiredCapabilities类

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

在请求远程Web驱动连接硒服务器或硒网格时,首先一点要先创建一个期望功能的对象,请看实例:

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 = {'平台':'WINDOWS','浏览器名称':'MicrosoftEdge','版本':''}

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(端口)

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

selenium.webdriver.common.utils.is_url_connectable(端口)

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