【问题标题】:How to use Selenium to grab nested LinkText?如何使用 Selenium 抓取嵌套的 LinkText?
【发布时间】:2015-08-12 16:19:31
【问题描述】:
我在 C# 中使用 Selenium 来单击名为“Store Locator”的链接。我目前的代码如下但没有点击链接:
IWebElement storeLink = driver.FindElement(By.LinkText("Store Locator"));
这是原始的 HTML,注意标签中嵌套了一个 span 元素,不确定这是否有区别。
<a href="/site/olspage.jsp?id=cat12090&type=page&rdct=n" data-lid="hdr_stl"><span class="header-icon-storeFinder" aria-hidden="true"></span>Store Locator</a>
【问题讨论】:
标签:
c#
selenium
selenium-webdriver
【解决方案1】:
好像链接被隐藏了。即使Selenium 找到链接,它也无法直接交互。在这种情况下,JavaScript 是您唯一的选择
By xpath = By.XPath("//span[contains(text(),'Store Locator')]");
IWebelement element = driver.FindElement(xpath);
((IJavaScriptExecutor)driver).ExecuteScript(@"arguments[0].click();",element);
【解决方案2】:
这肯定会奏效。
IWebElement storeLink = driver.FindElement(By.LinkText("Store Locator"));
storeLink.click();