首页 > 解决方案 > 单击 div 中的提交按钮不会将属性显示设置为无

问题描述

尝试单击不在另一个 iFrame 中的弹出 div 内的提交按钮子项时使用 Selenium Webdriver。父弹出 div 没有将属性“显示”设置回无。

该按钮分配了一个 ID,我正在使用 PageFactory 模型来发现元素。我尝试过使用 Actions()、JavaScriptExecutor() 类和普通的旧 .click() 函数,但是在 webdriver 执行操作/单击后,div 没有设置回“none”。

元素:

<button _ngcontent-c2="" id="policyEntry-clickYes" label="OK" pbutton="" 
type="button" ng-reflect-label="OK" class="ui-button ui-widget ui-state- 
default ui-corner-all ui-button-text-only"><span class="ui-button-text ui 
clickable">OK</span></button>

@FindBy(id = "policyEntry-clickYes")
public WebElement confirmationOkBtn;

使用的操作:

Actions action = new Actions(driver);
action.moveToElement(PolicyEntryPage.confirmationOkBtn).click().perform();

Javascript执行器:

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

需要来回交换的DIV:

<div class="ui-dialog ui-confirmdialog ui-widget ui-widget-content ui-corner-all ui-shadow" ng-reflect-ng-class="[object Object]" style="display: none; width: 425px; visibility: visible; left: 627.5px; top: 394px; z-index: 1046; opacity: 0;"></div>

单击确认按钮后,弹出窗口周围的 div 应从 display:block 设置回 display:none。

注意:该功能手动工作。

标签: javaselenium

解决方案


推荐阅读