小编And*_*lov的帖子

升级到Capybara 2.0后如何点击项目列表中的第一个链接?

在这种情况下如何单击第一个链接:

<div class="item">
  <a href="/agree/">Agree</a>
</div>
<div class="item">
  <a href="/agree/">Agree</a>
</div>
Run Code Online (Sandbox Code Playgroud)
within ".item" do
  first(:link, "Agree").click
end
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Capybara::Ambiguous:
  Ambiguous match, found 2 elements matching css ".item"
Run Code Online (Sandbox Code Playgroud)

没有within我得到这个错误:

Failure/Error: first(:link, "Agree").click
NoMethodError:
  undefined method `click' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

ruby rspec capybara

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

JMeter:如何使用内容类型标头发送请求?

我们如何更改http请求的请求头中的内容类型以获得宁静的Web服务?我们从哪里改变它?

http jmeter

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

在selenium中设置请求标头

我正在尝试将请求标头"Referer"设置为欺骗来自其他网站的请求.我们需要使用特定引用者的能力测试,它将特定的表单返回给用户,否则给出另一种形式.

我可以通过以下方式在恶作剧中做到这一点:

page.driver.headers = {"Referer" => referer_string}
Run Code Online (Sandbox Code Playgroud)

但我找不到selemium驱动程序的等效功能.

如何在capybara selenium驱动程序中设置请求标头?

webdriver capybara selenium-webdriver

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

多个Capybara等待时间?

我想Capybara在我的代码中有不同的等待时间,具体取决于它们通常需要多长时间才能完全加载?我是否必须重复改变Capybara.default_wait_time或者有更好的方法吗?

capybara

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

Capybara:无法找到css

我使用capybara点击一个复选框,但无论我做什么,它似乎都找不到它.我能够正确地找到跨度内的跨度和标签,但不能找到我实际需要的输入.

这是复选框

<span class="checkbox tos">
  <input id="agreement" name="agreement" onclick="agreeValidate();" type="checkbox" value="false">
  <label for="agreement">I accept the <a href="http://www.dev.com:3000/terms" target="_blank">Terms of Use</a>, <a href="http://www.dev.com:3000/privacy" target="_blank">Privacy Policy</a>, and am at least 13 years old</label>
</span>
Run Code Online (Sandbox Code Playgroud)

以下是我尝试过的一些事情

page.check('agreement')
find(:css, '#agreement').set(true)
find('#agreement').set(true)
find('#agreement').click
Run Code Online (Sandbox Code Playgroud)

但是,他们都给了我同样的错误

Unable to find css "#agreement" (Capybara::ElementNotFound)
Run Code Online (Sandbox Code Playgroud)

我也想知道onclick当单击复选框时,这些方法中的任何一个都会触发该方法吗?我觉得find(:css, '#agreement').set(true)不会触发onclick事件.但是,我不确定其余的事情.

更新

我也试过通过xpath选择元素.以下是我发现的各种事情

find(:xpath, '//*[@id="registration"]/span[2]')
Run Code Online (Sandbox Code Playgroud)

这样就可以找到span没有问题的元素

find(:xpath, '//*[@id="registration"]/span[2]/input')
Run Code Online (Sandbox Code Playgroud)

这找不到我需要的元素,但是这个xpath正确地选择了chrome控制台中的元素

find(:xpath, '//*[@id="agreement"]')
Run Code Online (Sandbox Code Playgroud)

这找不到我需要的元素,但xpath选择chrome控制台中的元素

find(:xpath, '//*[@id="registration"]/span[2]/label')
Run Code Online (Sandbox Code Playgroud)

这样就可以labelspan没有问题的情况下找到元素.

rspec capybara capybara-webkit

34
推荐指数
2
解决办法
3万
查看次数

保存等距游戏的平铺数据的最有效方法

我正在开发一款支持快速浏览器的等距游戏,<canvas>非常有趣.为了保存每个图块的信息,我使用一个二维数组,其中包含代表图块ID的数字,如:

var level = [[1, 1, 1, 2, 1, 0],
             [0, 1, 1, 2, 0, 1],
             [0, 1, 1, 2, 1, 1]];

var tiles = [
    {name: 'grass',  color: 'green'},
    {name: 'water',  color: 'blue'},
    {name: 'forest', color: 'ForestGreen'}
];
Run Code Online (Sandbox Code Playgroud)

到目前为止,它的效果很好,但现在我想在这张照片中使用高度和斜率: alt text http://harmen.no-ip.org/isometrictiles.png

对于每个瓷砖,我需要保存它的瓷砖ID,高度和有关哪些角向上翻转的信息.

我想出了一个关于所有四个角的按位表示的简单想法,如下所示:

1011 // top, bottom and left corner turned up
Run Code Online (Sandbox Code Playgroud)

我的问题是:为每个单元格保存这三个值的最有效方法是什么?是否可以将这三个值保存为一个整数?

javascript isometric

32
推荐指数
1
解决办法
2597
查看次数

使用Maven和Eclipse的Java Dynamic Web项目

关于使用Maven和Eclipse创建Java Web应用程序,我有几个问题:

  • 如何使用Maven创建带有servlet,jsp和其他类的Java Web项目?
  • 它创建了一个简单的目录结构,src-> main-> java.我在哪里以及如何放置web-inf文件夹?
  • 我是否需要手动将jdbc-drivers添加到web-inf/lib中的文件夹中,或者只是指出依赖项?
  • 有没有办法用junit测试servlet?

java eclipse junit java-ee maven

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

如何将pom.xml添加到现有的Eclipse项目中?

我是Maven的新手并使用Eclipse Juno.我已经安装了Maven Integration for Eclipse.有三个选项在文件>新建>其它> Maven的:
1.结帐Maven项目从SCM
2. Maven的模块
3. Maven项目

,但我没有看到Maven2的POM描述这里.我已经读过添加pom.xml是使用Maven时要做的第一件事.

我有一个现有的动态Web项目,所以我不确定是否需要创建Maven项目才能使用Maven.

如何在现有项目中使用Maven?

此外,当我尝试添加Maven项目并在步骤"选择一个原型"时,所有显示的原型都有版本"RELEASE".当我在此步骤中单击"下一步"时,Eclipse将变为"无响应".它的使用内存甚至没有增加.

java eclipse m2eclipse maven m2e

25
推荐指数
2
解决办法
6万
查看次数

Selenium挂起实例化FirefoxDriver

我尝试开始使用selenium(今天下载了当前版本)并复制了他们打开浏览器并执行谷歌搜索的示例.

但是,该程序永远挂在第一行WebDriver driver = new FirefoxDriver();.

我安装了Firefox 13.

Thread dump:
Thread [main]
  Thread.sleep(long) line: not available [native method] [local variables unavailable]
  FirefoxBinary.sleep(long) line: 218
  FirefoxBinary.clean(FirefoxProfile, File) line: 234
  NewProfileExtensionConnection.start() line: 76
  FirefoxDriver.startClient() line: 200
  FirefoxDriver(RemoteWebDriver).(CommandExecutor, Capabilities) line: 94
  FirefoxDriver.(FirefoxBinary, FirefoxProfile) line: 147
  FirefoxDriver.() line: 85
  Test.main(String[]) line: 24

java selenium webdriver

21
推荐指数
1
解决办法
9996
查看次数

Capybara没有找到元标签

Capybara 2.1.0似乎没有找到任何元标记:

(rdb:1) p page.find 'meta'
*** Capybara::ElementNotFound Exception: Unable to find css "meta"
Run Code Online (Sandbox Code Playgroud)

即使他们出现在page.source:

(rdb:1) p page.source
"<!doctype html>\n<html>\n<head>\n<title>MyTitle</title>\n<meta charset='utf-8'>\n<meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>\n<meta content='width=device-width, initial-scale=1' name='viewport'>\n<meta name='description'>\n\n..."
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails capybara

21
推荐指数
2
解决办法
4716
查看次数