Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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 .click()在Selenium webdriver中不一致_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java .click()在Selenium webdriver中不一致

Java .click()在Selenium webdriver中不一致,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我有一个网站,有一个旋转木马与3个按钮为3旋转项目。这方面的html代码如下所示 <ul class="slick-dots" style="display: block;"> <li class="slick-active" aria-hidden="false"> <button type="button" data-role="none" role="button" tabindex="0">1</button> </li> &l

我有一个网站,有一个旋转木马与3个按钮为3旋转项目。这方面的html代码如下所示

<ul class="slick-dots" style="display: block;">
<li class="slick-active" aria-hidden="false">
<button type="button" data-role="none" role="button" tabindex="0">1</button>
</li>
<li aria-hidden="true">
<button type="button" data-role="none" role="button" tabindex="0">2</button>
</li>
<li aria-hidden="true">
<button type="button" data-role="none" role="button" tabindex="0">3</button>
</li>
</ul>
<ul class="slick-dots" style="display: block;">
<li class="" aria-hidden="true">
<button type="button" data-role="none" role="button" tabindex="0">1</button>
</li>
<li class="slick-active" aria-hidden="false">
<button type="button" data-role="none" role="button" tabindex="0" 
style="">2</button>
</li>
<li aria-hidden="true">
<button type="button" data-role="none" role="button" tabindex="0">3</button>
</li>
</ul>
加载站点时,将启用第一个按钮。 单击旋转木马中的第二个按钮,将更改html,如下所示:

<ul class="slick-dots" style="display: block;">
<li class="slick-active" aria-hidden="false">
<button type="button" data-role="none" role="button" tabindex="0">1</button>
</li>
<li aria-hidden="true">
<button type="button" data-role="none" role="button" tabindex="0">2</button>
</li>
<li aria-hidden="true">
<button type="button" data-role="none" role="button" tabindex="0">3</button>
</li>
</ul>
<ul class="slick-dots" style="display: block;">
<li class="" aria-hidden="true">
<button type="button" data-role="none" role="button" tabindex="0">1</button>
</li>
<li class="slick-active" aria-hidden="false">
<button type="button" data-role="none" role="button" tabindex="0" 
style="">2</button>
</li>
<li aria-hidden="true">
<button type="button" data-role="none" role="button" tabindex="0">3</button>
</li>
</ul>
我需要单击每个旋转木马按钮并捕获相应的标题。以下是我到目前为止所做的。然而,这并不总是有效的。但是,如果我调试代码,那么所有3个标题都被正确捕获

    int CarouselItem=2;
    for (int i = 1; i<=CarouselItems.size(); i++) {

        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        //*getting the page header heading
           WebElement PageHeaderHeading = driver.findElement(By.xpath("//div[1]/main/section/div/div/div/div[" + i + "]/div[2]/div/div/div[2]/h1"));
            System.out.println("Page header text of "+i+" now is " + PageHeaderHeading.getText());

         //* clicking on the 2nd and 3rd carousel buttons   
        if(CarouselItem<=CarouselItems.size())
        {
            WebElement CarouselButtonToClick = driver.findElement(By.xpath("//li[(@aria-hidden='true') and button[contains(text(),'"+CarouselItem+"')]]"));
           driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

            CarouselButtonToClick.click();
            CarouselItem = CarouselItem + 1;
        }
    }
int CarouselItem=2;

for(int i=1;我的意思是,您需要根据“调试时,它可以工作”显式等待页面加载。请检查。@VinceEmigh,非常感谢!显式等待对我很有效:)