如何在Selenium WebDriver for Java中按索引查找元素
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Selenium WebDriver for Java中按索引查找元素,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2319字,纯文字阅读大概需要4分钟。
内容图文
我正在尝试自动化Google图片页面:
所有图像都具有相同的类,但是没有id,并且结果在不断变化.因此,我希望能够基于它们的索引单击图像.
我知道如何在C#中执行此操作…但是我无法弄清楚如何在Java中的索引中指定.当我尝试选择一个大于0的索引时,出现和IndexOutOfBounds错误,但我无法弄清为什么
WebElement image = chromeDriver.findElement(By.className("rg_di"));
WebElement imageLink = image.findElements(By.tagName("a")).get(1);
imageLink.click();
这是我正在使用的整个代码…任何帮助将不胜感激:
System.setProperty("webdriver.chrome.driver", "/Users/user/chromedriver");
WebDriver chromeDriver = new ChromeDriver();
chromeDriver.get("http://www.google.com");
WebElement searchBox = chromeDriver.findElement(By.id("gbqfq"));
searchBox.sendKeys("pluralsight");
searchBox.sendKeys(Keys.RETURN);
chromeDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebElement imagesLink = chromeDriver.findElement(By.linkText("Images"));
imagesLink.click();
WebElement image = chromeDriver.findElement(By.className("rg_di"));
WebElement imageLink = image.findElements(By.tagName("a")).get(1);
imageLink.click();
任何帮助将不胜感激
解决方法:
在您的代码中:
WebElement image = chromeDriver.findElement(By.className("rg_di"));
将返回在页面上找到的带有“ rg_di”类的第一个元素.
该元素只有一个< a href = ... / a>标记在其中.
您正在获取IndexOutOfBounds异常,因为您正在请求第二个异常(从零开始的索引编制).如果将最终的WebElement更改为:
WebElement imageLink = image.findElements(By.tagName("a")).get(0);
只需很小的改动,代码就可以为您工作.
这是我的快速版本(请注意,由于缺少存储元素,因此只需要做一件事情作为WebElements即可):
public static void main(String[] args) {
// I don't have Chrome installed >.<
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.google.com");
WebElement searchBox = driver.findElement(By.id("gbqfq"));
searchBox.sendKeys("pluralsight");
searchBox.sendKeys(Keys.RETURN);
driver.findElement(By.linkText("Images")).click();
WebElement image = driver.findElement(By.className("rg_di"));
image.findElements(By.tagName("a")).get(0).click();
// super-shortened version:
// driver.findElement(By.className("rg_di")).findElements(By.tagName("a")).get(0).click();
}
内容总结
以上是互联网集市为您收集整理的如何在Selenium WebDriver for Java中按索引查找元素全部内容,希望文章能够帮你解决如何在Selenium WebDriver for Java中按索引查找元素所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。