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 机器人在执行操作之前等待?

ruby之selenium 安装篇

如何在 selenium webdriver 中自动化桌面通知 - ruby

markdown Selenium Cheat Sheet - Ruby

如何在 Ruby 中使用 Selenium webdriver 截取警报的屏幕截图?

无法在 Mac 上设置 ruby​​-selenium Webdriver