父div的Selenium FindElement

时间:2018-04-25 11:34:02

标签: selenium selenium-webdriver

试图找到“a href”的链接元素。代码段:

<div id="contact-link">
    <a href="http://automationpractice.com/index.php?controller=contact" title="Contact Us">Contact us</a>
</div>

我通过以下方式管理:

  1. Driver.FindElement(By.XPath("//*[@title='Contact Us']")).Click();
  2. 2。Driver.FindElement(By.XPath("//a[@href='http://automationpractice.com/index.php?controller=contact']")).Click();

    3。Driver.FindElement(By.XPath("//*[text()='Contact us']")).Click();

    有人可以告诉我如何通过首先获得父div ,然后找到该div中的内容(从顶部到底部)

2 个答案:

答案 0 :(得分:1)

基本上,使用xpath,您希望复制HTML结构。你需要的是:

//div[@id='contact-link']/a

这将返回div下的href。假设只有1,这就是要走的路。如果你想进一步,请尝试:

//div[@id='contact-link']/a[@title='Contact Us']

答案 1 :(得分:1)

虽然您已经接受了答案,但我想强调一下有关Xpath和cssSelector的一些观点。您应该始终在 Xpath 上选择 cssSelector

根据您的要求, cssSelector

div[id='contact-link']>a

代码:

Driver.FindElement(By.CssSelector("div[id='contact-link']>a")).Click();

有关cssSelector的更多信息:https://www.w3schools.com/cssref/css_selectors.asp 对于Xpath和cssSelector之间的差异,您可以从 SO 帖子中读取它:Diff between Xpath and cssSelector