9

我在使用 selenium 进行测试时使用了大部分元素定位器,但使用频率非常低的“TagName”定位器。请举例说明。

4

4 回答 4

11

现在假设,软件 web 元素没有任何 ID 或类名,那么如何在 selenium WebDriver 中找到该元素?答案是 selenium WebDriver 元素定位器有很多替代品,其中之一是按标签名称定位元素。

按标签名称定位元素并不太流行,因为在大多数情况下,我们会有其他元素定位器的替代方案。但是是的,如果没有其他选择,那么您可以使用元素的 DOM 标记名称在 webdriver 中定位该元素。

在此处输入图像描述

在这里,您可以选择标记名作为定位器,例如:

//Locating element by tagName and store its text in variable dropdown.
 String dropdown = driver.findElement(By.tagName("select")).getText();
于 2015-12-06T09:35:53.377 回答
3

感谢By.tagName 的弃用,您应该使用 By.css 作为@Shah 的答案......

String dropdown = driver.findElement(By.css("select")).getText();
于 2018-12-18T15:35:00.517 回答
3

我们使用标签的实际名称,例如 anchor 和 table 以及 input 。这有助于获取具有给定标签名称的所有元素。示例:选择给定输入的第一个元素

var dialog = driver.FindElement(By.ClassName("ladialog"));
var save = dialog.FindElements(By.TagName("input"))[0];
save.Click();
于 2017-06-23T20:16:35.813 回答
0

同样重要的是,tagName定位策略可用于获取或获取网页中的所有链接并将它们打印到控制台。尝试这个:

//GET ALL LINKS IN A WEBPAGE
List<WebElement> allLinks = driver.findElements(By.tagName("a"));
System.out.println("Links count is: "+allLinks.size());
for(WebElement link : allLinks)
System.out.println(link.getText());
于 2017-09-19T07:57:49.300 回答