Selenium ruby常用api
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium ruby常用api相关的知识,希望对你有一定的参考价值。
参考技术A #断言def assert_true(actual, expect)
expect(actual).to eq(expect)
end
def assert_false(actual, expect)
expect(actual).not_to eq(expect)
end
def assert_include(actual, expect)
expect(actual).to include(expect)
end
def assert_not_include(actual, expect)
expect(actual).not_to include(expect)
end
#关闭当前的tab
Driver.close
#获取浏览器的tab数
Driver.window_handles.length
#根据location来点击元素
Driver.action.move_to_location(location_x, location_y).click.perform
#页面scroll up
Driver.execute_script('window.scrollTo(0,0))
#页面scroll down
Driver.execute_script('window.scrollTo(0,document.body.scrollHeight);)
#scroll到特定的元素
Driver.execute_script('arguments[0].scrollintoView();, element)
#获取当前的page的url
Driver.current_url
#获取当前浏览器的title
Driver.title
# switch to特定的frame
Driver.switch_to.frame(target)
#返回到原来的frame
Driver.switch_to.default_content
#删除所有的cookies
Driver.manage.delete_all_cookies
#浏览器返回上一页
Driver.navigate.back
# switch to一个新的tab页:
def switch_to_new_window
current_handle = Driver.window_handle rescue nilDriver.window_handles.each do |handle|next if current_handle == handleDriver.switch_to.window(handle)end
end
#在浏览器创建新的tab页,并且输入URL
current_window_handle =Driver.window handle
before_window_handles =Driver.window handles
Driver.execute_script('window.open())
switch_to_new_window
Driver.navigate.to(new_url)
#浏览器页面刷新
Driver.navigate.refresh
#获取页面元素的,X,Y坐标值
target = Driver.find_element(:id,‘elemeny_id_01')
target.rect.y
target.rect.x
#获取元素的个数
target.size
#获取元素的css
target.css_value(attri)
#获取元素的attribute.target.attribute(attri)
selenium常用api
参考技术A浏览器
定位/操作对象
webdriver 提供了一系列的元素定位方法,常用的有以下几种:
获取单个的:find_element_by_xxx()
获取所有的:find_elements_by_xxx()获取所有的
传数据:send_keys()
点击:click()
清除数据:clear()
提交:submit()
其他常用WebElement方法
获取该对象的尺寸大小:driver.find_element_by_id("kw").size()
获取该对象的文本:driver.find_element_by_id("cp").text
获取该对象的属性:driver.find_element_by_id(\'su\').get_attribute(\'type\')
该对象是否可见(布尔):driver.find_element_by_id("kw").is_displayed()
键盘事件
from selenium.webdriver.common.keys import Keys
层级定位
driver.find_element_by_id(\'xx\').find_element_by_link_text(\'xx\').click()
这里用到了二次定位,通过对 Link1 的单击之后,出现下拉菜单,
先定位到下拉菜单,再定位下拉菜
单中的选项。当然,如果菜单选项需要单击,可通过二次定位后也直接跟 click()操作。
frame定位
switch_to_frame方法
跳转句柄
select(option)
对这种类型的下拉框一般的处理是两次点击,第一点击弹出下拉框,
第二次点击操作元素。当然,也有些下拉框是鼠标移上去直接弹出的,
那可以使用 move_to_element()进行操作
文件上传
直接定位file标签sendkeys绝对路径或者相对路径
调用js
execute_script
控制浏览器滚动条
利用js操作滚动条实现,但是selenium3中支持自动搜索页面,不需要再操作滚动条来检索标签元素,了解即可
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
time.sleep(2)
cookie操作
获取对象的属性
以上是关于Selenium ruby常用api的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Selenium/Ruby 机器人在执行操作之前等待?
如何在 selenium webdriver 中自动化桌面通知 - ruby
markdown Selenium Cheat Sheet - Ruby