Selenium笔记

PDF资料: https://legacy.gitbook.com/book/wizardforcel/selenium-doc/details

[1]Selenium WebDriver //P11-P27
WebDriver 提供更精简的编程几口,以解决 Selenium-RC API 中的一些限制。WebDriver 为那些页面元素可以不通过页
面重新加载来更新的动态网页提供了更好的支持。WebDriver 的目标是提供一套精心设计的面向对象的 API 来更好的支持现代高级 web 应用的测试工作。
 相比 Selenium-RC ,WebDriver 确实非常不一样。Selenium-RC 在所有支持的浏览器中工作
原理是一样的。它将 JavaScript 在浏览器加载的时候注入浏览器,然后使用这些 JavaScript
驱动 AUT 运行, WebDriver 使用的是不同的技术,再一次强调,它是直接调用浏览器自动化的
本地接口。
1) Get Page
driver.get("http://www.goole.com");
2)find Element
webElement element =driver.findElement(By.id("coolestWidgeEvah"));
List<WebElement> cheeses = driver.findElements(By.className("cheeses"));
WebElement fame =driver.findElement(By.tagName("iframe"));
WebElement cheese =driver.findElement(By.name("cheese"));
WebElement cheese =driver.findElement(By.linktext("cheese"));
WebElement cheese =driver.findElement(By.partiallinktext("cheese"));
WebElement cheese =driver.findElement(By.cssSelector("#food span/dairy.aged"));
3)Select
Select select =new select(driver.findElement(By.tagname("select")));  //tagname
select deselectall();
select.selectByVisibleText("Edam");  
driver.findElement(By.id("Submit")).click(); //id
4)Window & Frame
5)Alert
Alert Alert= driver.switchTo().alert();
6)Navigation
driver.navigate().to("http://www.goole.com"); // driver.get("http://www.goole.com");
driver.navigate().back();
driver.navigate().forward();


[2]Selenium RC(Remote Control) //P27-P47
Selenium RC 在很长一段时间内都是 Selenium 的主
要项目,直到 WebDriver/Selenium 合并而产生了最新和最强大的 Selenium 2。
Selenium 仍然被活跃的支持(大部分是维护工作),并且提供了一些 Selenium 2 短期不会
支持的特性,包括支持多语言 (Java, Javascript, Ruby, PHP, Python, Perl 和 C#) 和支持几乎
所有的浏览器。


API使用
1)启动浏览器
setup("http://www.google.com","firefox");
2)运行命令
selenium.type("fied-id","string to type");
3)报告结果
4)测试框架报告工具
5)测试报告库




[3]Selenium Grid //P47-P53
支持分布式的测试,允许在多台机器用多台浏览器并行运行测试


[4]WebDriverJS //P53-P61
WebDriver 的 JavaScript 绑定(WebDriverJS),可以使 JavaScript 开发人员避免上下文切
换的开销,并且可以让他们使用和项目开发代码一样的语言来编写测试。WebDriverJS 既可
以在服务端运行,例如 Node,也可以在浏览器中运行。


[5]高级用户交互 //P62-P66
高级用户交互API提供了一个更新更完善的机制来定义并描述用户在一个网页上的各种操作。
这些操作包括:拖拽、按住CTRL键选择多个元素等等。

 

### 使用 Selenium 进行自动化测试的笔记与教程 #### 创建 WebDriver 实例并初始化环境 为了启动自动化测试流程,首先需要创建一个 `WebDriver` 的实例来控制浏览器行为。这可以通过指定目标浏览器驱动程序路径实现。 ```python from selenium import webdriver # 设置 Chrome 浏览器选项 chrome_options = webdriver.ChromeOptions() driver = webdriver.Chrome(options=chrome_options) # 访问网站 URL url = "http://example.com" driver.get(url) ``` 此段代码展示了如何配置Chrome浏览器选项以及加载特定网页地址[^4]。 #### 页面交互操作 一旦打开了所需的Web页面,则可以执行各种类型的用户模拟动作,比如填写表单字段或触发按钮点击事件: ```python # 定位用户名输入框并通过 sendKeys 方法发送字符串数据 username_field = driver.find_element_by_name('username') username_field.send_keys('admin') # 同样方法应用于密码域 password_field = driver.find_element_by_name('password') password_field.send_keys('123456') # 查找登录按钮元素并调用 click() 来提交表单 login_button = driver.find_element_by_id('submit-button') login_button.click() ``` 上述例子说明了怎样定位HTML文档中的不同组件,并对其进行相应的操作以模仿真实用户的活动。 #### 断言验证功能正确性 在编写自动化测试案例时,断言是非常重要的组成部分之一;它们用来确认应用程序的行为是否符合预期的结果。例如,在成功登录之后,可能会期望看到欢迎消息显示给已认证过的用户: ```python welcome_message = driver.find_element_by_class_name('greeting').text assert 'Welcome' in welcome_message, f"Expected a greeting but got '{welcome_message}' instead." ``` 这段Python脚本片段用于检查是否存在包含“Welcome”的问候语句,如果没有找到匹配项则抛出异常终止测试过程。 #### 清理资源释放 最后一步应当总是关闭打开的浏览器窗口并且结束所有关联进程,从而确保不会占用不必要的系统资源: ```python driver.quit() ``` 该命令会彻底销毁由webdriver管理的一切连接对象及其子线程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值