通过悬停或任何方式单击隐藏元素以单击按钮

时间:2019-09-27 06:52:34

标签: selenium

将鼠标悬停在该行后弹出一个按钮,我要单击删除按钮。我的代码不会发生什么,但不会产生任何错误。

尝试悬停然后选择并悬停然后单击隐藏的类

WebDriverWait waitPOSCashCollect = new WebDriverWait(driver, 10);
        waitPOSCashCollect.until(ExpectedConditions.elementToBeClickable(pageModule));
        driver.findElement(pageModule).click();
        System.out.println("Successful in proceeding to POS Cash Collect Page");

        driver.manage().timeouts().implicitlyWait(25,TimeUnit.SECONDS) ;

        Actions hover = new Actions(driver);

        WebElement Elem_to_hover = driver.findElement(By.className("imgdel"));

        hover.moveToElement(Elem_to_hover);

        hover.build();

        hover.perform();

HTML

<tbody><tr class="tableheader" align="center"><td class="tdwid"></td><td>类<br>Type</td><td>总数<br>Total Amt</td><td>最后修改员<br>Last Modified By</td><td>日期<br>Date</td><td class="tddelete_header"></td></tr><tr contextmenu="rgb(214, 242, 255)" style="background-color: rgb(214, 242, 255); cursor: pointer;"><td class="tablerow tdwid"><span class="txtwid">100000000000015</span></td><td class="tablerow tdtype tdclick"><span class="spntype">Cash Beginning 初始现金</span></td><td class="tablerow tdtotalamount tdclick"><span class="spntotalamount">1,000.00</span></td><td class="tablerow tdlastmodifiedby tdclick"><span class="spnlastmodifiedby">superadmin</span></td><td class="tablerow tddatetimemodified tdclick"><span class="spndatetimemodified">2019-09-27 13:57:27</span></td><td class="tablerow tddelete"><img class="imgdel" style="display: none;" onclick="delete_fnc(this)" src="images/icondelete.png"></td></tr><tr contextmenu="rgb(255, 255, 255)" style="background-color: rgb(255, 255, 255); cursor: pointer;"><td class="tablerow tdwid"><span class="txtwid">100000000000016</span></td><td class="tablerow tdtype tdclick"><span class="spntype">Cash Beginning 初始现金</span></td><td class="tablerow tdtotalamount tdclick"><span class="spntotalamount">10.00</span></td><td class="tablerow tdlastmodifiedby tdclick"><span class="spnlastmodifiedby">superadmin</span></td><td class="tablerow tddatetimemodified tdclick"><span class="spndatetimemodified">2019-09-27 14:41:00</span></td><td class="tablerow tddelete"><img class="imgdel" style="display: none;" onclick="delete_fnc(this)" src="images/icondelete.png"></td></tr></tbody>

也尝试过

WebElement temp = driver.findElement(By.xpath("//*[@id=\"tbl\"]/tbody/tr[2]/td[6]/img"));

2 个答案:

答案 0 :(得分:0)

尝试通过Actions类使用以下代码,

Actions actions = new Actions(driver);
WebElement deleteButton= driver.findElement(By.xpath(//*[@onclick='delete_fnc(this)']));
actions.moveToElement(deleteButton);
actions.click().build().perform();

答案 1 :(得分:0)

我认为您应该首先使该元素可见。

并且您可以使用操作来单击它。

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].style.display='block';", element);

直接用Javascript单击。

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);