2012-11-12 142 views
1

我使用的是selenium-webdriver,我正在寻找一些非常简单的东西,但我没有在文档中找到它。selenium-webdriver点击第一个链接

这是我的代码的一部分:

browser = Selenium::WebDriver.for :firefox, :profile => profile 
browser.navigate.to 'an_url' 
# I find ancestor element 
browser.find_element(:id, "displaylinks").find_element(:id, "link0").find_element(:class, "link-center") 
# but I want to click the first link child of this last element 

任何想法?

回答

3

有一对夫妇,你可以使用不同的选择的:

ancestor_element = browser.find_element(:id, "displaylinks").find_element(:id, "link0").find_element(:class, "link-center") 

#Using tag_name 
ancestor_element.find_element(:tag_name, 'a').click 

#Using css-selector 
ancestor_element.find_element(:css, 'a').click 

#Using xpath-selector (direct child) 
ancestor_element.find_element(:xpath, './a').click 

#Using xpath-selector (anywhere in ancestor)child) 
ancestor_element.find_element(:xpath, './/a').click 
+0

能否请您解释一下'/了'和'.//了')?用我无法理解的代码。 – CodeLover

+1

@CodeLover,那些是xpath选择器。第一个说找到ancestor_element的直接孩子的第一个'a'元素(即链接)。第二个说在ancestor_element的任何地方找到链接。所以如果你有'

',第一个没有找到链接,而第二个会。有关更多详细信息,您可能需要阅读xpath选择器。 –

+0

'+ 1'给你,非常感谢!如果你想要的话,任何'xpath'上的好材料都可以引用我。 – CodeLover