我正在尝试定位一个linkText为“T恤”的网页元素。我首先定位了父类,然后尝试定位元素。我打印了其父对象的标记名,它按预期工作。但是我既无法使用linkText也无法使用partialLinkText定位该元素。该网页为http://automationpractice.com/index.php。
WebElement tshirts_tab = driver.findElement(By.cssSelector(".sf-menu.clearfix.menu-content.sf-js-enabled.sf-arrows"));
System.out.println(tshirts_tab.getTagName());
WebElement tshirts = tshirts_tab.findElement(By.partialLinkText("T-shirts"));
System.out.println(tshirts.getAttribute("href"));发布于 2018-10-18 15:29:28
试一试
WebElement tshirts = tshirts_tab.findElement(By.partialLinkText("T-SHIRTS"));或
WebElement tshirts = tshirts_tab.findElement(By.linkText("T-SHIRTS"));根据WebDriver规范https://www.w3.org/TR/webdriver1/#link-text
“将rendered 设为通过调用获取元素的元素文本而返回的值。”
在您的示例中,您可以看到通过linktext查找的元素具有样式"text-transform: uppercase;",它实际上将文本呈现转换为大写。
您可以使用不同的定位器找到此元素,然后调用.getText()方法并看到它实际上返回“T恤”。因此,调用linkText时也应该提供“T恤”(呈现的文本)作为参数。
https://stackoverflow.com/questions/52860651
复制相似问题