Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从随机链接中寻找选择器_Java_Selenium_Selenium Webdriver_Webdriver - Fatal编程技术网

Java 从随机链接中寻找选择器

Java 从随机链接中寻找选择器,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,我不知道如何找到被点击的项目链接。 我有网页,我选择产品并去比较产品,我使用随机点击“添加到购物车”,我需要检查我点击“添加到购物车”的物品的价格是否与购物车中的价格相同 public void chooseRandomItem() { List <WebElement> links = driver.findElements(By.xpath("//input[@value = \"Add to Cart\"]")); Random gen = new Random

我不知道如何找到被点击的项目链接。 我有网页,我选择产品并去比较产品,我使用随机点击“添加到购物车”,我需要检查我点击“添加到购物车”的物品的价格是否与购物车中的价格相同

public void chooseRandomItem() {
    List <WebElement> links = driver.findElements(By.xpath("//input[@value = \"Add to Cart\"]"));
    Random gen = new Random();
    WebElement link = links.get(gen.nextInt(links.size())); 
    link.click();
public void chooseRandomItem(){
List links=driver.findElements(By.xpath(//input[@value=\“Add to Cart\”]);
Random gen=新的Random();
WebElement link=links.get(gen.nextInt(links.size());
link.click();
这是工作,但现在我不知道哪个“添加到购物车”被点击了,我无法在购物车中与价格竞争。我应该如何解决它

________________________更新__________________________

要模拟:

  • 单击项目下的“比较项目”

  • 单击url“产品比较”

  • 选择一个随机项目并单击“添加到购物车”

  • 检查购物车中的价格是否与我选择的(随机)物品价格相同


  • 现在我选择了随机链接,我必须将这个随机项目的价格与购物车中的价格进行比较,因为这都在一个HTML表格中,这使它变得有点困难。我要做的是:

  • 计算表列数(
    totColumns
    )。通过计算HTML
    表中
    TR
    中的
    TD
    来完成此操作
  • 获取一个介于2和
    totColumns
    之间的随机数(
    r
  • 从列
    r
    中获取价格,然后单击列
    r
    中的“添加到购物车”链接。您知道哪一行包含价格,只需从该行抓取
    TD
    #
    r
    。对“添加到购物车”链接行执行相同操作,然后单击它
  • 现在,您可以将产品比较页面上的价格与购物车中的价格进行比较


    编辑:在考虑了更多并添加了一些详细信息之后,做了一些细微的更改。

    我只想提一下,我会将链接和价格(甚至更多信息)包装到一种产品ui元素中,以获得更好的代码结构

    首先,你收集所有产品,并随意选择一个。其次,你获取这个具体产品的信息

        var products = WebDriver.FindAdaptedElements(By.CssSelector("div.product-thumb")); 
    
        // do your random selection
        var product = products.ElementAt(???); // do your random selection
    
        // get product related elements - the price:
        var price = product.FindAdaptedElement(By.CssSelector("p.price")).Text;
    
        // add to cart
        product.FindAdaptedElement(By.CssSelector("div.button-group>button")).Click();
        // .. do the checks ..
    

    在下一步中,您可以使用价格变量(字符串)验证该产品的正确金额。

    我对您的方案感到困惑。您最初表示您单击了“添加到购物车”但是我不确定你点击了哪一个来与购物车中的价格进行比较,但更新的部分是关于产品比较的。请澄清你的情况并更新步骤好吗?谢谢。好的,对不起,也许我不准确。我正确的情况在更新部分。我停止了比较价格。第一篇文章中的代码选择了随机项目从比较项目并单击“添加到购物车”。执行此操作时,购物车中有关于此购物车中项目价值的信息。我现在需要比较随机添加到购物车中的项目的价格和“上”的价格cartI并不真的同意这种“点击随机事件”的方法,因为你如何才能真正验证结果?你应该确保你需要的数据存在(加载它,否则清除并重新创建),自信地点击真实的东西,这样就可以完全验证。你能告诉我更多的方法吗?添加了一些细节,并稍微更改了逻辑,使其更简单。