我试图根据我在维基百科页面屏幕上看到的文本找到一个元素。现在,首先我尝试了 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 472 000+</bdi> <span>articles</span> </small> </a>
这就是它找不到文本的原因,因为它只需要“英语”
关于c# - Selenium 中 "By.partialLinkText"和 "By.LinkText"之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46257504/