如何使用Selenium和Java单击确认按钮

如何使用Selenium和Java单击确认按钮,java,selenium,xpath,css-selectors,webdriverwait,Java,Selenium,Xpath,Css Selectors,Webdriverwait,我有一个确认按钮,我想点击它。我已经尝试了下面列出的三种方法。但它不起作用 driver.findElement(By.cssSelector("input.btn.btn.primary")).submit(); driver.findElement(By.xpath("//*[@id='content']/div[2]/div/input")).click(); driver.findElement(By.xpath("//*[@value='I Acknowledge' ")).click

我有一个确认按钮,我想点击它。我已经尝试了下面列出的三种方法。但它不起作用

driver.findElement(By.cssSelector("input.btn.btn.primary")).submit();
driver.findElement(By.xpath("//*[@id='content']/div[2]/div/input")).click();
driver.findElement(By.xpath("//*[@value='I Acknowledge' ")).click();
这是页面的HTML:

<input class="btn btn-primary" type="button" value="I Acknowledge">

尝试使用此css定位器:


输入[class='btn btn primary'][value='I Acknowledge']

尝试使用此css定位器:


输入[class='btn btn primary'][value='I Acknowledge']

单击I Acknowledge元素,您必须为
元素导入WebDriverWait以使其可伸缩()
,并且您可以使用以下任一选项:

  • css选择器

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.btn.btn-primary[value='I Acknowledge']"))).click();
    
  • xpath

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='btn btn-primary' and @value='I Acknowledge']"))).click();
    

要单击我确认元素,您必须诱导WebDriverWait将
元素设置为可禁用()
,并且您可以使用以下任一选项:

  • css选择器

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.btn.btn-primary[value='I Acknowledge']"))).click();
    
  • xpath

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='btn btn-primary' and @value='I Acknowledge']"))).click();
    

发布您希望单击的元素的HTML。发布您希望单击的元素的HTML。我尝试了它,但它仍然不起作用。findelelement(通过.cssSelector(“输入[class='btn btn primary']][value='I Acknowledge']”)。submit();使用click或submit都不起作用…请尝试javascript executor((JavascriptExecutor)driver).executeScript(“参数[0]。单击();”,元素);我用css选择器和xpath尝试了javascript executor,但它仍然不能工作WebElement=new WebDriverWait(driver,20)。直到(ExpectedConditions.elementToBeClickable(By.xpath(//button[@class='btn btn sm btn primary'和text()='No']);//WebElement element=new WebDriverWait(driver,20).until(ExpectedConditions.elementToBeClickable(由.cssSelector(“button.btn.btn sm.btn primary[data ng click*='attemptNext']);JavascriptExecutor js=(JavascriptExecutor)驱动程序;js.executeScript(“参数[0]。单击();”,元素);我尝试了它,但它仍然不能工作。findelelement(由.cssSelector(“输入[class='btn btn primary']][value='I Acknowledge']))。submit();使用click或submit都不起作用…请尝试javascript executor((JavascriptExecutor)driver).executeScript(“参数[0]。单击();”,元素);我用css选择器和xpath尝试了javascript executor,但它仍然不能工作WebElement=new WebDriverWait(driver,20)。直到(ExpectedConditions.elementToBeClickable(By.xpath(//button[@class='btn btn sm btn primary'和text()='No']);//WebElement element=new WebDriverWait(driver,20).until(ExpectedConditions.elementToBeClickable(由.cssSelector(“button.btn.btn sm.btn primary[data ng click*='attemptNext']);JavascriptExecutor js=(JavascriptExecutor)驱动程序;js.executeScript(“参数[0]。单击();”,元素);谢谢你上面的代码工作,我很感激。我挣扎了一段时间while@JOE_D如果这个/任何答案对你有帮助,对未来的读者有好处。谢谢你,上面的代码很有效,我很感激。我挣扎了一段时间while@JOE_D如果这个/任何答案对你有帮助,对未来的读者有好处。