我有一个带有网格的网页,一些列在列标题中有一个链接,它将通过往返到服务器来对该列的值进行排序。
我想编写一个单独的Watir测试,它将识别这些排序链接,并连续单击每个链接。这是一项冒烟测试,可确保排序表达式不会导致运行时异常。
我的问题是,(1)识别这些链接,以及(2)连续单击每个链接的最佳方法是什么?这就是我到目前为止所知道的:
$ie.table(:id, "myGrid").body(:index, 1).each do | row |
row.each do | cell |
## todo: figure out if this contains a so
我尝试使用ruby/watir点击一个包含"Add to Cart“字样的按钮。
如果我使用
cart = browser.link(text: 'Add To Cart')
if cart.present?
cart.click
它起作用了(商品被添加到购物车中),但我得到了一个单击intercepted的元素:元素...在点(441,20)处不可点击。其他元素将收到点击:(Selenium::WebDriver::Error::ElementClickInterceptedError
我是ruby/watir的新手,所以如果有任何帮助,我将不胜感激。
在cucumber 0.9.4中,我正在使用Watir ruby gem测试一些网站。所有的测试都运行得很好,但问题是,如果站点需要一些时间来加载,那么站点测试将被跳过,如何克服这个问题。我的功能文件内容是:
Feature: Search
In order to learn more
As an information seeker
I want to find more information
Scenario: Find what I'm looking for
Given I am on the Google search page
When
如何使用Watir获取带有id='foo'的标记元素的实例数?
我有这个:
b = Watir::Browser.new
b.a(:id => 'foo')
那么如何获取实例数量并通过索引进行访问,如下所示:
b.a(:id => 'foo', :index => $i) #Here, $i is a variable in a loop
在伪代码中,我基本上是在尝试这样做:
num = "number of a tags with id foo"
while $i less than num do
pu
代码
for i in 0..10
$browser.link(:id => "send_link").fire_event("onclick")
puts "Click #" + i.to_s
end
仅在崩溃前向控制台显示"Click #0“,并显示unable to locate element错误。我需要它点击链接10次,即使当页面试图从第一次点击加载。有没有办法使用watir-webdriver来实现这一点,或者我必须使用win32api来劫持鼠标并单击鼠标?
编辑:目前,我试图通过使用硬件单击方法来解决这个问
我是ruby/watir的新手,在尝试单击链接时遇到错误。错误是:
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/elemen
t.rb:328:in `assert_exists': Unable to locate element, using {:tag_name=>["a"],
:id=>"My Link"} (Watir::Exception::UnknownObjectException)
from C:/Ruby193/
我希望单击出现在我的测试应用程序上的弹出消息。我刚接触水豚,似乎找不到一种方法来做到这一点。我以前有过使用watir的经验,如果我使用watir来做这件事,它会是这样的:
if browser.link(:text, "name").exists? do
browser.link(:text, "name").click
end
我怎样才能在水豚中做同样的事情呢?请注意,此链接不会总是出现,因此我希望有if语句。
我正在尝试单击元素带有链接文本编辑的所有元素:
for i in browser.find_elements_by_link_text('edit'): browser.find_element_by_link_text('edit').click()
现在,这显然只点击了第一个元素找到的i次。我通常会尝试使用XPath/CSS Selector和使用索引的循环来获取下一个元素,但是除了具有不同的ID之外,这些XPaths是相同的,所以在这种情况下我不知道如何单击所有元素。
我尝试编辑的是Reddit评论:
使用XPaths:
//*[@id
我正在尝试滚动网页,以查找并单击在滚动页面时延迟加载的内容。我正在使用以下命令
require 'watir-webdriver'
@browser = Watir::new :firefox
@browser.send_keys :space
我在火狐上使用web-driver,我在ubuntu上,但它不工作。在下面的ruby代码中,我试图向下滚动页面,直到找不到带有:id的元素。该元素正在延迟加载。几秒钟后我就超时了,你知道下面的代码出了什么问题吗?
When /^deal (\d+) is loaded$/ do |id|
(0..5).each do |click