2017-10-13 128 views
0

可见我已经为我的元素下面的代码:元素没有与红宝石和硒

<button type="submit" class="btn btn-primary"> 
         Search 
        </button> 

我已标识的元素是这样的:

browser.find_element(:xpath, "//button[@class='btn btn-primary']") 

看来我有一个以上的类btn btn-primary并且元素在页面上不可见 - 这是我得到的错误消息。我试过使用明确的等待,但它不起作用。我想我应该用另一种方式来定义这个元素。任何想法我应该怎么做?谢谢。

回答

0

你可以使用一个以上的属性来识别一个元素:

browser.find_element(:xpath, "//button[@class='btn btn-primary' and @type='submit']") 

随着越来越多的HTML代码,我们可以帮助你。如果这还不够。

0

你有多个“搜索”按钮?如果您的按钮需要一些时间显示,这可能会起作用。

wait = Selenium::WebDriver::Wait.new(:timeout => 10) 
search_button = wait.until { driver.find_element(:xpath => "//button[contains(text(),'Search')]") } 
search_button.click() 

(编辑:哎呀,发布的Java)