用按类定位
许多属性都可以用作定位元素,参见(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服务器的指定端口,看是否成功返回