## 上下文管理器
### 一般的上下文管理器(原版)
通常情况下,上下文管理器是这样的
```python
class MyResource:
def __enter__(self):
print('connect to resource')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('close resource co
发表于:2020-07-02 阅读(138)
## select
选择元素可能需要大量样板代码才能自动化. 为了减少这种情况并使您的测试更干净, 在Selenium的support包中有一个 Select 类. 要使用它,您将需要以下导入语句
```ruby
include Selenium::WebDriver::Support
```
### 创建select对象
```ruby
select_element = driver.find_element(id: 'selectElementID')
select_ob
发表于:2020-07-01 阅读(165)
## 弹框
### Alerts 警告框
获取文本并关闭警告
```ruby
# Click the link to activate the alert
driver.find_element(:link_text, 'See an example alert').click
# Store the alert reference in a variable
alert = driver.switch_to.alert
# Store the alert text in
发表于:2020-06-30 阅读(184)
## 鼠标事件
### action
```ruby
source = driver.find_element(id: "source")
target = driver.find_element(id: "target")
driver.action.drag_and_drop(source, target).perform
```
### click
```ruby
driver.find_element(css: "input[type='submit']").clic
发表于:2020-06-29 阅读(176)
## 键盘事件
### sendKeys
即使遇到修饰符键序列, sendKeys也会在DOM元素中键入键序列. Here are the list of possible keystrokes that WebDriver Supports.
```ruby
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :firefox
begin
# Navigate to URL
driver.get
发表于:2020-06-28 阅读(180)
## 定位
定位有多种方式,id,class,css,xpath等。
### id
```ruby
cheese = driver.find_element(id: 'cheese')
# 链式查找
cheese = driver.find_element(id: 'cheese')
cheddar = cheese.find_element(id: 'cheddar')
```
### css
```ruby
driver.find_element(css: '#chee
发表于:2020-06-27 阅读(184)
## frames
```html
Click here
```
```ruby
# 这不会工作
driver.find_element(:tag_name,'button').click
```
### 使用iframe并切换
```ruby
# Store iframe web element
iframe = driver.find_element(:css,'#modal> iframe')
### 切换到 frame
driver.swit
发表于:2020-06-26 阅读(165)
## 窗口
### 窗口的设置
#### 创建
```ruby
# 注意:ruby 中的 new_window 只打开一个新标签页(或)窗口,不会自动切换
# 用户必须切换到新选项卡 (或) 新窗口
# 打开新标签页并切换到新标签页
driver.manage.new_window(:tab)
# 打开一个新窗口并切换到新窗口
driver.manage.new_window(:window)
```
#### 切换窗口或者标签页
```ruby
# 存储原始窗口的 ID
发表于:2020-06-25 阅读(175)