首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Selenium图片制作板

问用Selenium图片制作板
EN

Stack Overflow用户
提问于 2015-11-19 20:27:28
回答 1查看 287关注 0票数 0

如果我没有以正确的方式发布一些东西,请原谅我,因为这是我第一次发到这个网站。我目前正在为我的学校制作一个爬虫(用java语言),它访问pinterest上的某个页面,并“回复”上面的所有照片。我目前正在使用Selenium编写代码,但是我遇到了重复问题。我知道如何编程来打开一个特定的图像并对其进行修复,但是我如何对其他图片进行同样的处理呢?我必须这样做的各种兴趣网页与可变数量的图片在每一页。下面是我现在的相关代码:

public static void GetPageInfo(WebDriver driver) throws AWTException, InterruptedException { driver.get("https://www.pinterest.com/kachance33/school-psych/"); Thread.sleep(2000); driver.findElement(By.xpath("//div[2]/div/div/div[2]/div[3]/a/div[2]/div/div ")). click(); Thread.sleep(3000); driver.findElement(By.xpath("(//button[@type='button'])[23]")).click(); driver.findElement(By.xpath("(//button[@type='button'])[59]")).click(); }

为了简化我的问题,下面是:

  1. 如何让selenium单击每个图片中xpath不同的图片?
  2. 我如何将所有这些都放到一个时间循环中呢?
  3. 在没有找到按钮或图片的情况下,如何处理异常?(没有整个程序崩溃并不得不重新启动)
EN

回答 1

Stack Overflow用户

发布于 2015-11-20 07:43:47

基本思想是将driver.findElements()与xpath或css选择器一起使用,该选择器映射到图片列表(以WebElements的形式),并迭代它们。

也就是说。

代码语言:javascript
复制
List<WebElement> pictures = driver.findElements(By.cssSelector(".GridItems .item"));

for (WebElement picture : pictures) {
    // code to pin the picture
}

使用driver.findElements()也消除了问题#3中的问题,因为该方法不会抛出异常。如果没有找到图片,它将返回一个空列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33813754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档