首页 文章

无法单击Selenium webdriver上的Button(元素)

提问于
浏览
0

enter image description here
无法单击Selenium webdriver上的Button(元素) . 它没有显示出这样的元素异常 .

HTML:

<button id="datepicker-354-7412-title" class="btn btn-default btn-sm uib-title" tabindex="-1" ng-disabled="datepickerMode === maxMode" ng-click="toggleMode()" type="button" aria-atomic="true" aria-live="assertive" role="heading">
    <strong class="ng-binding">August 2016</strong>
</button>

Java的:

driver.findElement(By.xpath("//*[@id='flip-card']/div[2]/div/div[2]/div[2]/div[1]/div/div[2]/i")).click();
driver.manage().timeouts().implicitlyWait(05, TimeUnit.SECONDS);
//driver.findElement(By.xpath("//ul[@class='uib-datepicker-popup dropdown-menu ng-scope']/li/div/table/thead/tr/th/button[@id='datepicker-758-2620-title']/strong")).click();
//driver.findElement(By.xpath(".//*[@id='datepicker-961-3767-title']")).click();
//WebElement mm=driver.findElement(By.id("datepicker-1164-5186-title"));
//mm.click();
/*WebElement element=driver.findElement(By.xpath("//*[@id='datepicker-354-7412-title']"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click()", element); */
driver.findElement(By.xpath("//button[@id='datepicker-354-7412-title']/strong")).click();

4 回答

  • 0

    id可能是动态的,尝试通过包含 datepickertitle 的部分ID找到按钮

    driver.findElement(By.cssSelector("[id*='datepicker'][id*='title']")).click();
    

    您还可以使用显式等待来确保按钮在单击之前存在/可见

    WebDriverWait wait = new WebDriverWait(driver, 10);
    
    // visible
    WebElement button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("[id*='datepicker'][id*='title']")));
    button.click();
    
    // or exist
    WebElement button = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("[id*='datepicker'][id*='title']")));
    button.click();
    
  • 1

    这应该工作:

    driver.findElement(By.id("datepicker-354-7412-title")).click();
    
  • 0

    您是否尝试将xpath放在firepath中并检查它是否指向您想要的内容?

    你试过用吗?

    //强[@ class ='ng-binding']作为你的xpath?

    让我们知道这是否有帮助?

  • 0

    使用firefox addon firebug查找xpath: - 检查元素 - 右键单击元素并复制xpath

    Firebug的xpath生成器非常好,生成的路径通常适用于其他浏览器 .

    希望有所帮助 .

相关问题