c# - Selenium 中 "By.partialLinkText"和 "By.LinkText"之间的区别?

标签 c# selenium-webdriver

我试图根据我在维基百科页面屏幕上看到的文本找到一个元素。现在,首先我尝试了 driver.findElement(By.LinkText("English")); 但没有结果。 但是后来我用 driver.findElement(By.partialLinkText("English")); 尝试了下面的代码并且它起作用了。 有人可以根据维基百科页面向我解释,这是为什么?因为这个例子真的很简单,我不知道为什么 driver.findElement(By.LinkText("English")); 不起作用?

driver.get("http://www.wikipedia.org");
WebElement link;
link = driver.findElement(By.partialLinkText("English"));
link.click();

最佳答案

名字说明了一切。
LinkText:它返回与给定文本完全匹配的元素
PartialLinkText 返回包含给定文本的元素

我看过http://www.wikipedia.org我看到链接还包含其他文本元素:

<a ... > 
   <strong>English</strong> 
   <small>
      <bdi dir="ltr">5&nbsp;472&nbsp;000+</bdi>
      <span>articles</span>
   </small>
</a>

这就是它找不到文本的原因,因为它只需要“英语”

关于c# - Selenium 中 "By.partialLinkText"和 "By.LinkText"之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46257504/

相关文章:

c# - Windows 事件日志

c# - 将格式 xxxxxxxxxx 更改为 xxx-xxx-xxxx

java - 使用 Selenium 取消焦点窗口

java - mvn 测试不适用于 Apache Poi

java - 如何在同一台机器上运行多个 selenium 测试套件

c# - 尝试向 Azure 通知中心注册 Xamarin 应用程序时出现未经授权的异常

c# - 如何在 c# 程序中连续运行函数

jquery - Selenium 测试中 $ 未定义错误

selenium-rc - 如果按钮没有ID,如何使用Selenium按下/单击按钮?

c# - 当存在 IntegrationEvents 时,Pub/Sub 模式如何解耦微服务