Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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 thread.sleep()的替代选项-amazon selenium webdriver添加到购物车忽略保险对话框_Java_Selenium Webdriver_Webdriverwait - Fatal编程技术网

Java thread.sleep()的替代选项-amazon selenium webdriver添加到购物车忽略保险对话框

Java thread.sleep()的替代选项-amazon selenium webdriver添加到购物车忽略保险对话框,java,selenium-webdriver,webdriverwait,Java,Selenium Webdriver,Webdriverwait,我试图避免使用Thread.sleep(),但如果没有它,保险对话框上的“无感谢”按钮将无法单击 步骤: 在amazon.com上搜索产品 点击产品名称 在“产品详细信息”中,单击“添加到购物车” 单击“购买保险”对话框中的“无感谢”按钮 项目被添加到购物车 我已尝试按照以下步骤替换线程。sleep() 尝试隐式等待避免将预先声明的WebElement传递给ExpectedConditions函数,因为它应该可以随时用于浏览器上的WebDriver。如果出现以下情况,请尝试以下操作:- wait

我试图避免使用Thread.sleep(),但如果没有它,保险对话框上的“无感谢”按钮将无法单击

步骤:

  • 在amazon.com上搜索产品
  • 点击产品名称
  • 在“产品详细信息”中,单击“添加到购物车”
  • 单击“购买保险”对话框中的“无感谢”按钮
  • 项目被添加到购物车 我已尝试按照以下步骤替换线程。sleep()


    尝试隐式等待

    避免将预先声明的WebElement传递给ExpectedConditions函数,因为它应该可以随时用于浏览器上的WebDriver。如果出现以下情况,请尝试以下操作:-

    wait.until(ExpectedConditions.elementToBeClickable(By.xpath(<xpath for weblement insuranceNoThanksButton >)));
    

    谢谢Vishal的及时帮助。第一种选择有效。非常感谢您的详细解释。@jkk26-如果答案解决了您的问题,请向上投票
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath(<xpath for weblement insuranceNoThanksButton >)));
    
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", insuranceNoThanksButton);