Selenium 中“By.partialLinkText”和“By.LinkText”之间的区别?

Sup*_*ppe 1 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();
Run Code Online (Sandbox Code Playgroud)

Koe*_*jer 6

这个名字说明了一切。
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>
Run Code Online (Sandbox Code Playgroud)

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