0

有一个混合应用程序(使用steroids构建),我可以在 IOS 模拟器上通过 selenium 远程 webdriver(远程部分是appium服务器)运行 cukes。

但是,我似乎无法在 cukes 中使用 css 选择器,只能使用某种“本机”选择器。

例如,如果我的应用程序是一个只有 的 html <p>TEXT</p>,那么driver.find_element(:xpath, '//staticText')[:label]我会得到 TEXT,但是有没有办法使用 css 选择器 - p- 代替?

也许 selenium/appium 不是最好的设置?

4

2 回答 2

2

致所有通过搜索机到达这里的人。请注意,自 Appium 1.0 版以来,使用窗口操作更改为 Web 视图上下文已过时。由于 Selenium-webdriver 目前不支持上下文,你应该切换到appium_lib

promote_appium_methods使用带有 -Function切换上下文的appium_lib非常简单:

set_context('WEBVIEW_1')

于 2014-07-16T10:15:53.080 回答
0

要使用 css 选择器,需要将上下文切换到 webview。假设一个单页应用程序,这意味着切换到窗口“1”:

[1] pry(#<Cucumber::Rails::World>)> driver.window_handles
=> ["1"]
[2] pry(#<Cucumber::Rails::World>)> driver.switch_to.window "1"
=> ""
[3] pry(#<Cucumber::Rails::World>)> driver.find_elements :css, "div"
=> [#<Selenium::WebDriver::Element:0x..fdcd88f550f201750 id="5000">]
于 2014-03-24T10:44:12.563 回答