小编Chu*_*den的帖子

如何在Watir-Webdriver中更改页面加载超时(在.click方法中超时)

我有以下代码

browser.link(:text => 'Generate Report').click  
browser.radio(:value => 'byTotalValue').wait_until_present(180)  
Run Code Online (Sandbox Code Playgroud)

请求生成报告,然后通过在报告页面上查找元素来等待报告.报告最多可能需要2分钟才能显示.

发生的事情是Timeout :: 60秒后从click方法引发错误.我怀疑Watir-Webdriver在click方法中实现了某种形式的等待页面加载,但我没有看到调整值的方法.

任何帮助理解这一点将不胜感激.

webdriver watir watir-webdriver

20
推荐指数
2
解决办法
1万
查看次数

如何使用Watir :: Waiter :: wait_until强制Chrome等待?

我试图告诉我的watir脚本等待ajax注入的登录框打开.我正在使用watir-webdriver,并在Chrome中进行测试.我无法开始wait_until工作,如下面(简化)脚本中所评论的那样.

require "rubygems"
require "watir-webdriver"
b = Watir::Browser.new(:chrome)
site = "www.example.com"
b.goto site

puts "Click on Sign In button"
b.link(:id, 'btnLogin').click

puts "Waiting for the username/password dialog to show up"

# Below line does *not* work
# Throws this error: "uninitialized constant Watir::Waiter (NameError)" 
Watir::Waiter::wait_until { b.text_field(:id, 'username').exists? }

# Below line does *not* work
# Throws this error: "undefined method `wait_until' for main:Object (NoMethodError)" 
wait_until { b.text_field(:id, 'username').exists? }

# Below line *does* work, but I don't …
Run Code Online (Sandbox Code Playgroud)

ruby watir watir-webdriver

16
推荐指数
1
解决办法
2万
查看次数

我如何获得Browser.text.include?不区分大小写?

就这么简单:

我怎样才能获得Browser.text.include?,或红宝石一般,是案件为指定的命令不敏感?

ruby watir watir-webdriver

8
推荐指数
2
解决办法
2810
查看次数

通过(Watir-)Webdriver调用时,Chrome/Firefox不会保留Cookie?

我正在为使用Ruby和Watir的客户端开发一个项目.他要求在重新加载应用程序时恢复会话(以便保存其登录状态).这是Chrome的正常行为(似乎),Firefox也可以选择这样做.

我已经尝试了所有我能想到的东西,似乎无法使用watir-webdriver来实现这一点.我已经指定Watir使用特定的配置文件(您认为它可以解决问题),确保所有设置都正确(它们是,因为它们在我自己启动浏览器时起作用).我尝试使用各种开关和配置文件选项,我认为可能有所帮助.没有.

所以,问题是,为什么会发生这种情况,我可以采取哪些措施来解决或解决这个问题?在这一点上,我几乎完全没有想法了.我甚至尝试在IRB中手动保存和重新加载cookie,但无济于事......

我知道这一定是可能的,因为当我手动登录网站时,关闭浏览器并重新打开它,我仍然登录.我需要重现这种确切的行为,但是在手册之间的某处出现了问题Chrome/Firefox的实例,以及由Watir控制的实例.

最后,我会提到我注意到,当我指定我的个人资料时,它会加载我的历史记录条目,但不会加载任何cookie.这让我越来越迷茫.

如果有人可以帮助我,我将不胜感激.

firefox google-chrome webdriver watir-webdriver selenium-chromedriver

8
推荐指数
1
解决办法
1698
查看次数

如何确定浏览器类型(IE,FF,Chrome等)

我正在切换我的Watir/FireWatir脚本以使用watir-webdriver并需要在watir-webdriver中使用一种方法来确定当前正在执行测试的浏览器类型(IE,FF,Chrome).

使用Watir/FireWatir查看浏览器的类将返回"Watir :: IE"或"FireWatir:Firefox".使用该代码可以分支以执行特定于浏览器的代码.

在watir-webdriver中,浏览器的类始终是"Watir :: Browser",在运行IE,Firefox或Chrome时它并没有变化.

有没有人知道Ruby中使用watir-web-driver来识别浏览器的类型(即IE,Firefox,Chrome)?

例如:使用Watir/Firewatir定义方法:

def is_ie?()

return self.class.to_s == "Watir::IE"
end
def is_firefox?()
return self.class.to_s == "FireWatir::Firefox"
end


然后像这样调用它们......

if(browser.is_ie?)

# run the IE specific code
end
if(browser.is_firefox?)
# run the firefox specific code
end



提前谢谢,

watir firewatir watir-webdriver

7
推荐指数
1
解决办法
2113
查看次数

Ruby - require'watir-webdriver' - 生成LoadError没有这样的文件......为什么?

我是Ruby的新手,非常感谢帮助理解这里发生了什么.
摘要:

宝石安装watir-webdriver
安装精细
启动irb
需要"watir-webdriver"
... LoadError:没有这样的文件加载--watir-webdriver

当然这应该回应

=> true
Run Code Online (Sandbox Code Playgroud)

为什么找不到宝石?或者我做错了什么?

安慰

我在win7上,Railsinstaller(Ruby 1.8.7).

ruby webdriver watir watir-webdriver

7
推荐指数
2
解决办法
7887
查看次数

ruby watir获取页面的HTML

我查看了这些页面上的示例

http://watir.com/examples/ http://wiki.openqa.org/display/WTR/Examples

我仍然没有看到获取页面html的简单示例.

browser = Watir::Browser.new
browser.goto 'mysite.com'
Run Code Online (Sandbox Code Playgroud)

我试过了

puts browser.text
Run Code Online (Sandbox Code Playgroud)

它似乎不起作用.

谢谢

ruby watir watir-webdriver

7
推荐指数
1
解决办法
1万
查看次数

在Watir中访问没有属性的元素

使用Watir,有没有办法访问没有属性的元素?

例如:

<span>Text</span>
Run Code Online (Sandbox Code Playgroud)

我想避免使用xpath,但如果这是唯一的方式很酷.

automation automated-tests watir webautomation watir-webdriver

6
推荐指数
3
解决办法
6710
查看次数

如何在新窗口中设置WATIR焦点

我是WATIR测试的新手(我喜欢它!)并且已经碰到了如何将我的WATIR脚本重新聚焦到新打开的窗口的问题.这是我的(简化)脚本....

#!/usr/bin/ruby
require 'rubygems'
require 'watir-webdriver'
browser=Watir::Browser.new
browser.goto("http://0:3050")

browser.text_field(:name,"userkey300203830").set("OKJHNB")
browser.button(:id, "interview48").click

puts "Expected Result:"
puts "A successful display of cars"

if browser.window(:title=>"300203830").exists?
   puts " Test passed. New window opened!"
else
   puts " Test Failed! No window found"
end
Run Code Online (Sandbox Code Playgroud)

这一切都可以直到最后.单击"interview48"键后,将打开一个标题为"300203830"的新窗口.看起来我找到了但我现在还不知道如何关注那个窗口.

ruby automated-tests watir webautomation watir-webdriver

6
推荐指数
3
解决办法
1万
查看次数

Rest-client使用authlogic登录

我正在尝试使用Rest-client gem为我的应用程序执行一些小任务,这些任务使用Authlogic对用户进行身份验证.从Rest-Client的API,我看到可以发布登录过程所需的数据,如下所示:

require 'rest_client'
RestClient.post "http://127.0.0.1:3000/user_sessions", {:user_session => {:username => 'myusername', :password => 'mypassword'}}.to_json, :content_type => :json, :accept => :json
Run Code Online (Sandbox Code Playgroud)

查看我的开发日志,我看到该应用程序已登录我并将我正确地重定向到用户的私人页面.但是,当我试图"重新加载"私人页面时,

RestClient.get 'http://127.0.0.1:3000/users/1'
Run Code Online (Sandbox Code Playgroud)

我再次回到登录页面,好像我还没有登录.所以我想知道这是否与会话或cookie有关?

我已经使用cURL成功地重现了这个场景,我使用开关'-c cookie.txt'来保存我已登录的信息,并使用开关'-b cookie.txt'为每个调用告诉远程服务器关于我的身份验证.我可以理解这个概念,就像在主题公园或他们知道你支付的酒吧时手腕上的印章一样.但我发现RestClient中没有提到这种机制.任何帮助都可以解决这个问题.我也不介意尝试其他http客户端.

问候

ruby authentication rest authlogic rest-client

5
推荐指数
1
解决办法
2073
查看次数