8

我对 Java 和 Selenium 比对 Ruby 和 Capybara 和 SitePrism 更熟悉,所以如果这个问题相当厚重,我深表歉意。

Selenium 有一个非常有用的类来管理 Select 标签,Selenium::WebDriver::Support::Select,可以通过向它传递代表选择的 Selenium 元素 ( Selenium::WebDriver::Element ) 来创建它。我想得到一个 Select 对象,这样我就可以使用它方便的方法。

但是,使用 SitePrism 和 Capybara,定义元素的标准方法使我可以访问由 Capybara 的 Element 类Capybara::Node::Element建模的选择,而且我似乎找不到提取底层 Selenium 元素的简单方法来自水豚元素。

我四处寻找替代方案,发现 Capybara 的#select方法,但这对我来说似乎非常有限,因为它看起来迫使您按值选择,并且用于定义页面上的选择的参数非常狭窄。

有没有一种简单的方法可以从 SitePrism/Capybara 创建 Selenium Select?还是有更好的方法来完全做到这一点?谢谢!

4

1 回答 1

8

啊,我找到了。Capybara::Node::Element 一直都是正确的。#native方法从驱动程序返回本机元素。然后可以将其传递给 Selenium Select 的初始化方法以成功创建 Select。

于 2013-09-10T19:04:18.373 回答