【问题标题】:Amazon click image based on search基于搜索的亚马逊点击图片
【发布时间】:2021-10-30 04:24:21
【问题描述】:

我对 selenium 很陌生,尝试过这个,但没有用。您可以通过访问亚马逊网站并搜索发夹轻松复制此图像,您将在搜索中找到此图像。找到此图像后,我想转到下一页,但没有发生。

    System.setProperty("webdriver.chrome.driver", "C:\\software\\chromedriver_win32\\chromedriver.exe");
    ChromeDriver Driver = new ChromeDriver();
    Driver.get("http://www.amazon.com");
    Driver.manage().window().maximize();
    Driver.findElement(By.id("twotabsearchtextbox")).sendKeys("Hairclip");
    Driver.findElementById("nav-search-submit-button").click();
    
        By by = By.xpath("//img[contains(@src,'https://m.media-amazon.com/images/I/716AFuiNFoL._AC_UL320_.jpg')]");
    
    
    WebDriverWait w = new WebDriverWait(Driver, 20);
    
    WebElement element = w.until(ExpectedConditions.elementToBeClickable(by));
    
    element.click();

错误如下

预期条件失败:等待元素可点击: 通过.xpath: //img[包含(@src,'https://m.media-amazon.com/images/I/716AFuiNFoL.AC_UL320.jpg')] (尝试 20 秒,间隔 500 毫秒)

感谢您的回复和努力。

【问题讨论】:

    标签: selenium selenium-webdriver selenium-chromedriver


    【解决方案1】:

    看起来你想点击第一张图片,在这种情况下,这个 xpath 应该可以工作:

    //img[@data-image-index='1']
    

    试试看:

    WebElement element = w.until(ExpectedConditions.elementToBeClickable(by.xpath("//img[@data-image-index='1']")));
    element.click();
    

    【讨论】:

      【解决方案2】:

      您使用的 XPath 定位器 //img[contains(@src,'https://m.media-amazon.com/images/I/716AFuiNFoL._AC_UL320_.jpg')] 匹配该页面上的 4 个元素。
      要单击您想要的元素,请使用此定位器:

      (//img[contains(@src,'https://m.media-amazon.com/images/I/716AFuiNFoL._AC_UL320_.jpg')])[last()]
      

      所以代码行将是

      By by = By.xpath("(//img[contains(@src,'https://m.media-amazon.com/images/I/716AFuiNFoL._AC_UL320_.jpg')])[last()]");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-06
        • 2011-12-29
        • 2011-06-12
        • 2013-01-01
        • 2017-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多