我正在尝试使用“ T恤”的linkText查找Web元素。我首先找到父类,然后尝试找到该元素。我打印了其父标签名称,它可以按预期工作。但是我无法使用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"));
答案 0 :(得分:0)
尝试
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
“让渲染的文本为通过调用元素的获取元素文本返回的值。”
在您的情况下,您可以看到通过链接文本查找的元素具有样式"text-transform: uppercase;"
,实际上它会将文本 render 转换为大写。
您可以使用其他定位符找到该元素,然后调用.getText()
方法,并看到它实际上返回了“ T-SHIRTS”。因此,在调用linkText
时还应提供“ T-SHIRTS”(呈现的文本)作为参数。