【问题标题】:Searching for the solution to make selenium scrape products寻找制作硒刮片产品的解决方案
【发布时间】:2021-10-04 08:59:32
【问题描述】:

我正在从事我的宠物项目。至于现在,我想解析产品名称及其价格。 访问shoppingSite,按地图下方的按钮,然后在右侧再按一次。选择上部交货选项,您将被重定向到商店。靠近搜索部分的菜单栏位于。单击并选择任何类别。当您到达产品页面时,您可以打开开发人员工具。 所以,我不知道如何让硒给我名字和价格。 我尝试过的:

for (int i = 0; i < 6; i++) {
    Thread.sleep(1000);
    JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
    javascriptExecutor.executeScript("window.scrollBy(0, 200)");
    Thread.sleep(1000);
}

webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.category.page__content")));
WebElement element = driver.findElement(By.cssSelector("div.category.page__content"));
System.out.println(element.getText());

硒告诉我

Exception in thread "main" org.openqa.selenium.TimeoutException:
Expected condition failed: waiting for visibility of element

滚动,等待元素的可见性。没有帮助我。 将不胜感激任何提示。

【问题讨论】:

    标签: java html selenium maven scrape


    【解决方案1】:

    要获取产品名称,您可以这样做:

    webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("a.product-title")));
    Thread.sleep(300);
    List<WebElement> productNames= driver.findElements(By.cssSelector("a.product-title"));
    List<WebElement> productPrices= driver.findElements(By.cssSelector("div.current-price"));
    

    如果您想将这些名称和价格作为字符串列表获取,您可以使用此方法:

     public List<String> getElementsListTexts(By element){
        List<String> texts = new ArrayList<>();
        List<WebElement> list = driver.findElements(element);
        for (WebElement el : list ){
            texts.add(el.getText());
        }
        return texts;
    }
    

    原来如此

    webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("a.product-title")));
    Thread.sleep(300);
    List<String> names = getElementsListTexts(By.cssSelector("a.product-title"));
    List<String> prices = getElementsListTexts(By.cssSelector("div.current-price"));
    

    【讨论】:

    • 你救了我,我可以问你一些资源,我可以了解更多关于硒刮的信息吗?谢谢!
    • 任何关于使用 CSS 选择器和 XPath 使用 selenium 定位元素的好教程。喜欢这个screenster.io/selenium-locators-best-practices 或这个apress.com/it/blog/all-blog-posts/…。只需询问谷歌:selenium locators best practice 或类似的
    • 刚刚注意到是你。哈哈,你是硒大师吗?再次感谢:)
    • 好吧,不是大师,但有 6-7 年的经验:)
    • 晚上?。只是不要忘记接受和投票有用的答案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2010-10-21
    • 1970-01-01
    相关资源
    最近更新 更多