有一个混合应用程序(使用steroids构建),我可以在IOS模拟器上通过selenium远程webdriver(远程部分是appium服务器)运行。
但是,我似乎无法在cukes中使用css选择器,只能使用某种“本地”选择器。
例如,如果我的应用是仅包含<p>TEXT</p>
的html,那么driver.find_element(:xpath, '//staticText')[:label]
会给我TEXT,但有没有办法使用css选择器 - p
- 而不是?
也许selenium / appium不是最好的设置?
答案 0 :(得分:2)
所有通过搜索机器到达这里的人。请注意,自Appium 1.0版以来,更改为Web视图上下文的窗口操作的使用已过时。由于Selenium-webdriver目前不支持上下文,因此您应切换到appium_lib。
将appium_lib与其promote_appium_methods
一起使用 - 功能切换上下文非常简单:
set_context('WEBVIEW_1')
答案 1 :(得分:0)
要使用css选择器,需要将上下文切换到webview。假设单页应用程序,这意味着切换到窗口&#34; 1&#34;:
[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">]