【问题标题】:Cannot pick a random search result using Selenium with java无法使用 Selenium 和 java 选择随机搜索结果
【发布时间】:2017-09-05 09:34:48
【问题描述】:

作为 selenium 的新手,我正在尝试使用 java 在 selenium webdriver 上自动化购物网站,我的情况是,当我使用关键字搜索并获得结果时,我应该能够随机选择任何一个结果,但我无法选择随机搜索结果,要么我得到“没有这样的元素”,要么当我每次尝试点击相同的结果时,搜索结果似乎不时变化。请帮助如何进一步进行。

这里是代码:

package newPackage;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.FluentWait;
import org.openqa.selenium.support.ui.Wait;
public class flipKart {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe");
WebDriver dr = new ChromeDriver();
dr.get("http://m.barnesandnoble.com/");
dr.manage().window().maximize();
dr.findElement(By.xpath(".//*[@id='search_icon']")).click();
dr.findElement(By.xpath(".//*
[@id='sk_mobContentSearchInput']")).sendKeys("Golden Book");
dr.findElement(By.xpath(".//*
[@id='sk_mobContentSearchInput']")).sendKeys(Keys.ENTER);
dr.findElement(By.xpath(".//[@id='skMob_productDetails_prd9780735217034']/div/div")).click();                       
dr.findElement(By.xpath(".//*[@id='pdpAddtoBagBtn']")).click();
}
}

【问题讨论】:

标签: java selenium webdriver


【解决方案1】:

您应该编写任何方法来尝试等待需要单击的元素的可见性。

你可以使用 driver.sleep() 来检查。

【讨论】:

    【解决方案2】:

    很难回答您的信息,但这些提示可能会有所帮助:

    1. 如果您没有得到这样的元素,请尝试验证您使用的 css 选择器或 xpath 是否正确。 Firefox 的 Firebug Firefinder 是一个很好的工具。它将突出显示您的选择器指向的元素。

    2. 如果您的选择器正确,请确保您使用的是 findElementsBy... 而不是 findElementBy... 复数版本将返回一个 webelements 列表,然后您可以从中拉出随机元素进行点击。

    3. 使用智能等待确保页面上已加载元素。有时 selenium 会在页面上的元素出现之前尝试与它们进行交互。 selenium api 有很多方法可以在这里提供帮助,但是如果您只是在加载页面时调试一个快速的 Thread.sleep(5) 就可以了。

    【讨论】:

      猜你喜欢
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 2022-12-17
      • 1970-01-01
      • 2021-05-15
      • 2012-08-09
      相关资源
      最近更新 更多