单击扩展和折叠按钮硒黄瓜日食

时间:2020-02-05 07:58:53

标签: eclipse selenium automated-tests cucumber

我试图单击一个展开/折叠按钮,而我的第一个代码对其中一个按钮起作用,但是对于其他两个按钮却不起作用。这就是为什么使它成为一个奇怪问题的原因。

HTML 1

<!-- language: lang-html -->

<button class="collapser__header collapsed " type="button" data-toggle="collapse" data-target="#collapseIndkomstrubrikker" aria-expanded="false" aria-controls="collapseIndkomstrubrikker">Anden indkomst</button>

<div class="collapse" id="collapseIndkomstrubrikker"></div>

<!-- end snippet -->

代码无效

case "Anden indkomst": 
            try {
                WebElement wb;
                JavascriptExecutor js = (JavascriptExecutor)driver;
                    wb = driver.findElement(By.xpath("//*[@data-target='#collapseIndkomstrubrikker']"));
                    js.executeScript("arguments[0].click();", wb);
                } catch (Exception b) {
                   throw new NoSuchElementException("kunne ikke finde " + knap);

                }
            break;    

HTML 2

<button class="collapser__header collapsed " type="button" data-toggle="collapse" data-target="#collapseFradragrubrikker" aria-expanded="false" aria-controls="collapseFradragrubrikker">Andre fradrag</button>

<div class="collapse" id="collapseFradragrubrikker"></div>

有效的代码2

case "Andre fradrag": 
            try {
                WebElement wb;
                JavascriptExecutor js = (JavascriptExecutor)driver;
                    wb = driver.findElement(By.xpath("//*[@data-target='#collapseFradragrubrikker']"));
                    js.executeScript("arguments[0].click();", wb);
                } catch (Exception b) {

               throw new NoSuchElementException("kunne ikke finde " + knap);
            }
        break;

3 个答案:

答案 0 :(得分:0)

更改 wb = driver.findElement(By.xpath(“ // [@ id ='collapseIndkomstrubrikker']”))); 至 wb = driver.findElement(By.xpath(“ // [@ data-target ='#collapseIndkomstrubrikker']”))); 就像第二个例子

答案 1 :(得分:0)

尝试使用WebDriverWait等待元素可点击,如下所示:

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement wb;
wb = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@data-target='#collapseIndkomstrubrikker']"))); 
js.executeScript("arguments[0].click();", wb);

答案 2 :(得分:0)

我的Eclipse出现了一些错误,这就是为什么我的代码最初不起作用的原因。当我重新启动Eclipse时,代码起作用了:)