[译]Selenium Python文档:七、WebDriver API接口
由于API文档格式不太适合cnblog博客,暂且翻译一部分,且暂未校对
注意:这不是官方文档,官方 API文档在这里.
本章包含Selenium WebDriver的所有接口
推荐import风格
本章中的API第一显示的都是类的绝对位置。然而,要推荐的是下面这种import风格:
from selenium import webdriver
接着,你可以像下面这样访问其中的类:
webdriver.Firefox
webdriver.FirefoxProfile
webdriver.Chrome
webdriver.ChromeOptions
webdriver.Ie
webdriver.Opera
webdriver.PhantomJS
webdriver.Remote
webdriver.DesiredCapabilities
webdriver.ActionChains
webdriver.TouchActions
webdriver.Proxy
特殊的按键类(Keys)可以像下面这样import:
from selenium.webdriver.common.keys import Keys
异常类可以像下面这样导入(使用真实的类名替换其中的TheNameOfExceptionClass):
from selenium.common.exceptions import [TheNameOfTheExceptionClass]
API使用约定
有些方法和属性( attributes)是可调用的,而有些是不可调用的(properties)。所有可调用的attributes都以圆括号结尾。
一个 property示例:
current_url
当前加载的页面的URL
使用:driver.current_url
一个方法示例:
- close()
关闭当前窗口
使用:driver.close()
7.1.异常
异常可能出现在任意的webdriver代码中。
异常:
selenium.common.exceptions.ElementNotSelectableException(msg=None, screen=None, stacktrace=None)
基类:selenium.common.exceptions.InvalidElementStateException
当选择一个不可选择的元素是抛出。比如,选择一个script元素。
异常:
selenium.common.exceptions.ElementNotVisibleException(msg=None, screen=None, stacktrace=None)
基类:selenium.common.exceptions.InvalidElementStateException
当一个元素在DOM中,却是不可视的,无法与之交互时抛出。
通常会在尝试点击或者读取视图中一个隐藏元素是遇到这种异常。
异常:
selenium.common.exceptions.ErrorInResponseException(response, msg)
基类:selenium.common.exceptions.WebDriverException
当服务端出现错误时抛出。
当可能发生在于火狐扩展或远程驱动器服务器进行通信时出现。
异常:
selenium.common.exceptions.ImeActivationFailedException(msg=None, screen=None, stacktrace=None)
基类:selenium.common.exceptions.WebDriverException
当激活一个IME引擎失败时抛出
异常:
selenium.common.exceptions.ImeNotAvailableException(msg=None, screen=None, stacktrace=None)
基类:selenium.common.exceptions.WebDriverException
[译]Selenium Python文档:七、WebDriver API接口的更多相关文章
- [译]Selenium Python文档:目录
作者:Baiju Muthukadan 协议:本文档采用知识共享署名 - 共享4.0国际许可. 原英文网址:http://selenium-python.readthedocs.io/index.ht ...
- [译]Selenium Python文档:一、安装
1.1.简介 Selenium Python为使用Selenium WebDriver来编写功能/验证测试提供了一个简单的API接口.通过Selenium Python API,你可以以一种非常直观的 ...
- [译]Selenium Python文档:八、附录:FAQ常见问题
另外一个FAQ:https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions 8.1.怎样使用ChromeDriver ...
- [译]Selenium Python文档:四、元素定位
要定位一个页面中的元素有多中策略和方法.你可以根据实际情况选择其中最为合适的.Selenium为定位页面元素提供了下面的这些方法: find_element_by_id(使用id) find_elem ...
- [译]Selenium Python文档:二、初步开始
2.1.简单使用 如果已经安装好了Selenium Python,你就可以像下面这样编写Python代码来使用它了: from selenium import webdriver from selen ...
- [译]Selenium Python文档:五、Waits等待
大多数现代web应用都使用了AJAX技术.当浏览器加载一个页面的时候,该页面内的元素可能在不用的时间间隔内进行加载.这使得元素定位变得比较困难:如果一个元素还没有出现在DOM中,定位函数将会抛出一个E ...
- [译]Selenium Python文档:六、页面对象
本章是介绍页面对象设计模式的教程.一个页面对象代表了web应用用户接口的一片区域,你的测试代码将与之交互的. 使用页面对象模式的好处: 可以创建在多个测试样例中都可使用的可重用代码 减少重复性代码 如 ...
- [译]Selenium Python文档:三、导航控制
你使用WebDriver要做的第一件事就是访问一个链接.一般通过调用get方法来实现: driver.get("http://www.baidu.com") 在将控制权返给你的脚本 ...
- 基于 Python 官方 GitHub 构建 Python 文档
最近在学 Python,所以总是在看 Python 的官方文档, https://docs.python.org/2/ 因为祖传基因的影响,我总是喜欢把这些文档保存到本地,不过 Python 的文档实 ...
随机推荐
- 性能优化之数据存储&DOM编程
多读书多看报 数据存储 ·在javascript中,数据存储的位置会对代码整体性能产生重大的影响. ·数据存储共有4种方式:字面量.变量.数组.对象成员. ·要理解变量的访问速度,就要理解作用域. ...
- mysql共享锁与排他锁
mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流. 共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能 ...
- bootstrap 字体图标
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 使用批处理根据项目工程文件生成Nuget包并发布(支持.NET Core)
最近在使用之前自己编写的批处理给.NET Core项目打包时出问题了,发现之前的脚本根本不适用了,折腾了半天,总算解决了.因此在这里分享下经验,并且奉上整理好的脚本. Nuget包这里就不多介绍了,需 ...
- Java String类和Object类
String类: 方法: 1.charAt(int index):取index下标的char类型值 2.endsWith(String prefix) /startsWith(String prefi ...
- node文件中的package.json文件解析
{ "name":"myejsapp", "version":"0.0.0", "private": ...
- Python爬虫爬取qq视频等动态网页全代码
环境:py3.4.4 32位 需要插件:selenium BeautifulSoup xlwt # coding = utf-8 from selenium import webdriverfrom ...
- es6的解构赋值学习(1)
相对es5的简单的"="赋值来说,es6增加了一种新的赋值模式--解构赋值,按照它的规则,可以从数组和对象中提取值来对变量进行赋值,个人觉得方便了很多,但是这个模式有点恶心人,相比 ...
- winform调用cmd命令
string str = Console.ReadLine(); System.Diagnostics.Process p = new System.Diagnostics.Process(); p. ...
- hibernate中save()、update()、saveOrUpdate()的区别
save()方法很显然是执行保存操作的,如果是对一个新的刚new出来的对象进行保存,自然要使用这个方法了,数据库中没有这个对象. update()如果是对一个已经存在的托管对象进行更新那么肯定是要使用 ...