【问题标题】:Search for mobiles and click a particular mobile and print a particular review of the product in the console搜索手机并单击特定手机并在控制台中打印产品的特定评论
【发布时间】:2021-10-13 08:21:55
【问题描述】:

当我们在亚马逊上搜索手机并单击特定手机并在控制台中使用 selenium 和 java 和黄瓜框架打印产品的特定评论时,它没有打印任何东西。

     @Then("Click on the add to cart button")
     public void click_on_the_add_to_cart_button() {

    Set<String> ids = driver.getWindowHandles();
    Iterator<String> it = ids.iterator();
    String parentId = it.next();
    String childId = it.next();
    driver.switchTo().window(childId);
    l1=new LoginPojo();
    btnClick(l1.getAddToCart());
    JavascriptExecutor js =(JavascriptExecutor) driver;
    js.executeScript("window.scrollBy(0,10000)","");
    String data = driver.findElement(By.xpath(" //[@id=\"customer_review- R1R9S770F79ZNP\"]/div[4]/span/div/div[1]/span")).getText();
    System.out.println("Result: " + data);
}

【问题讨论】:

  • 在 LoginPojo() 之后,你不应该切换回默认内容来获取评论吗?
  • 但我想,我必须使用 xpath 找到要查看的元素并打印出来。
  • 你的ID中的R1R9S770F79ZNP,是独一无二的吗?
  • 找到的时候是xpath供审核。

标签: java selenium selenium-webdriver xpath e-commerce


【解决方案1】:

看看这是否有效。我正在尝试从这个link 中获取 4 元素

List<WebElement> reviews = driver.findElements(By.xpath("//div[@data-hook='review']"));
        
JavascriptExecutor js = (JavascriptExecutor)driver;
WebElement reviewEle = reviews.get(4);
js.executeScript("arguments[0].scrollIntoView(true);", reviewEle);
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        
System.out.println(reviewEle.findElement(By.xpath(".//div[contains(@id,'review-card')]/div[contains(@id,'customer_review')]//following-sibling::div[contains(@class,'small review-data')]//span[@data-hook='review-body']")).getText());
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多