Tar*_*run 5 html java selenium selenium-webdriver
我是Selenium webdriver的新手.我遇到了一个要求,我必须运行我的测试,点击一个部分中的所有链接.有人可以帮我解决这个问题.附上一张图片,显示该特定部分的萤火虫属性.我尝试了下面的代码,但它返回一个空列表.
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("https://dev.www.tycois.com/");
driver.manage().window().maximize();
List<WebElement> allElements = driver.findElements(By.xpath("html/body/div[10]/div/div[1]/div[3]/ul[1]/li[5]"));
System.out.println(allElements);
for (WebElement element: allElements) {
System.out.println(element.getText());
element.click();
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
细节不明确,但看起来您正在尝试打印页脚的"行业"部分中的链接.如果这是真的,这应该有效.
driver.get("https://dev.www.tycois.com/");
WebElement industries = driver.findElement(By.cssSelector("div.columns.three.alpha > ul"));
List<WebElement> links = industries.findElements(By.tagName("li"));
for (int i = 1; i < links.size(); i++)
{
System.out.println(links.get(i).getText());
}
Run Code Online (Sandbox Code Playgroud)
您无法单击此循环中的链接,因为一旦您单击第一个链接,您将不再在该页面上.我建议您将每个链接的URL存储在一个数组中,然后存储每个链接driver.get(url).或者,您可以将预期的URL存储在一个数组中,并将链接中的URL与预期的URL进行比较,而不必进行导航.这个选择由你...
小智 0
你可以使用像这样的例子:
driver.findElements(By.xpath("//li[contains(@class,'managed-services')]/ul/li/a"));
Run Code Online (Sandbox Code Playgroud)
使用附加到 html 根目录的 XPath(即绝对 xpath)通常是个坏主意,您应该始终尝试使用尽可能短的选择器(即相对 xpath)。
另请记住,如果链接被隐藏,您需要触发启用它们的操作 - 例如打开菜单。
| 归档时间: |
|
| 查看次数: |
34804 次 |
| 最近记录: |