Selenium webdriver 获取所有选定的src图像容器

Selenium webdriver 获取所有选定的src图像容器,selenium-webdriver,Selenium Webdriver,我想从所选容器获取所有src图像url,我尝试使用for循环,但无法完成 我尝试了以下代码,但得到的输出为Null WebElement img=driver.findElement(By.xpath("//*[@id='center_column']/div[2]")); List<WebElement> imgclass= img.findElements(By.xpath("//a[@itemprop='url']")); for(int i=0;i<imgclass.s

我想从所选容器获取所有src图像url,我尝试使用for循环,但无法完成

我尝试了以下代码,但得到的输出为Null

WebElement img=driver.findElement(By.xpath("//*[@id='center_column']/div[2]"));
List<WebElement> imgclass= img.findElements(By.xpath("//a[@itemprop='url']"));
for(int i=0;i<imgclass.size();i++){
List<WebElement> srcimg=imgclass.get(i).findElements(By.tagName("img"));
for(int j=0 ;j<imgclass.size();j++){                      System.out.println("Output"+imgclass.get(j).getAttribute("href"));
}
WebElement img=driver.findElement(By.xpath(“//*[@id='center\u column']]]/div[2]”);
List imgclass=img.findElements(By.xpath(“//a[@itemprop='url']);
对于(int i=0;i

但是我不明白为什么我会得到重复的URL:

这是因为当图像出现在
img
标签中时,您试图从
a
标签中获取图像

使用下面的Xpath

//img[@itemprop='image']
上面的Xpath将返回所有图像的元素

您可以将下面的xpath用于
href

//a[@class='product_img_link' and @href[contains(.,'262')]]
如果需要其他图像href,请将值从262更改为261

现在只需
.getAttribute(“href”)
即可检索完整的url。如下所示:-

String a = driver.findElement(By.xpath("//a[@class='product_img_link' and @href[contains(.,'262')]]")).getAttribute("href");
完整代码:-

WebDriver driver=new FirefoxDriver();
driver.get("https://www.domain.com/categories");
driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
String a = driver.findElement(By.xpath("//a[@class='product_img_link' and @href[contains(.,'261')]]")).getAttribute("href"); 
System.out.println(a);

希望它能对您有所帮助:)

我查看了该网站,并验证了该代码的有效性

List<WebElement> images = driver.findElements(By.cssSelector("div.product_list img"));
for (WebElement image : images)
{
    System.out.println(image.getAttribute("src"));
}
List images=driver.findElements(By.cssSelector(“div.product_List img”);
对于(WebElement图像:图像)
{
System.out.println(image.getAttribute(“src”);
}

CSS选择器正在查找
图像
标记,这些标记是带有类
产品列表
DIV
的后代。然后,它循环浏览
列表
,并为每个
图像

写出
src
属性。如果您只是链接该站点,则会更容易。要处理的HTML太多了。谢谢@Jeffc,这是它的工作…但是我不知道如何使用这个选择器“div.product\u list img”。。如果你能解释我的话,我将不胜感激。我通常处理此类任务的方式是找到一个包含给定产品所有产品信息的元素。。。我将其称为“container”元素。在本例中,这是带有类
产品列表的
DIV
。您需要每个产品的
IMG
标记,以便找到“容器”
DIV
的后代
IMG
,即
“DIV.product\u list IMG”
。这是一个好主意。我建议你读一些教程。CSS选择器功能非常强大,是任何自动机的好工具。如果这回答了您的问题,请接受它作为答案。谢谢。您好@JeffC,我想获取图像的href,这里我获取src,如何获取图像的href,因为我在“a”中看到两个href;有点困惑如何获得不同的href。我认为您混淆了两个不同的HTML标记。
IMG
标记具有
src
属性,
a
标记具有
href
属性。你在这里问的问题是关于
src
来自
IMG
标签的问题。有关更多信息,请参阅。如果你还有其他问题,你应该在这里标记一个答案,然后开始一个新的问题。感谢你的澄清,你能重新编写我的代码,这样我就可以得到我的错误??实际上我得到了src url,但事实是我想得到href,我尝试使用它,但我得到了重复的url,因为有两个“a”标记。如何把它拿出来..谢谢你的快速回复,我不知道该放在哪里,如果你能把我现有的代码框起来会更有帮助。我也这么做了,但它没有显示任何元素异常。是的,你错过了等待->驱动程序。管理()。超时()。隐式等待(10,TimeUnit.SECONDS);