【发布时间】:2019-10-19 20:30:17
【问题描述】:
我必须右键单击页面上的元素才能打开/选择上下文菜单。当我尝试这样做时,使用 Action 类它执行单击操作,但不在元素上。它在屏幕上的其他位置执行contextClick() 命令,而不是我作为参数传递给contextClick() 的元素。
我正在使用 IE11 在 Windows 10 上运行应用程序。
这是页面的HTML代码。
<ul id="menus" class="list" style="height: 613.734px;">
<li id="1" class="default">
<div class="inner-div" style="display: inline;">
<span class="menu"></span>
<span class="menu-title">Delete All</span>
</div>
<div class="menuBtn" title="Hide"></div>
</li>
<li id="2" class="default">
<div class="inner-div" style="display: inline;">
<span class="menu"></span>
<span class="menu-title">Delete User</span>
</div>
<div class="menuBtn" title="Hide"></div>
</li>
<li id="3" class="default">
<div class="inner-div" style="display: inline;">
<span class="menu"></span>
<span class="menu-title">Add User</span>
</div>
<div class="menuBtn" title="Hide"></div>
</li>
</ul>
这是我正在尝试的代码。
WebElement element = driver.findElement(By.xpath("//li[.='Add User']");
Actions action= new Actions(driver);
action.contextClick(element).perform();
我也尝试过使用以下 InternetOptions,但没有运气。
InternetExplorerOptions ieCapabilities = new InternetExplorerOptions();
ieCapabilities.setCapability("nativeEvents", true);
ieCapabilities.setCapability("unexpectedAlertBehaviour", "accept");
ieCapabilities.setCapability("ignoreProtectedModeSettings", true);
ieCapabilities.setCapability("disable-popup-blocking", true);
ieCapabilities.setCapability("enablePersistentHover", false);
new InternetExplorerDriver(ieCapabilities);
但是,它应该像在所有其他浏览器中一样右键单击元素;它在不同的位置而不是给定的元素上执行右键单击。
谁能帮我解决这个问题?
【问题讨论】:
-
使用元素的相关 HTML 更新问题。
-
@DebanjanB - 更新了元素的相关 HTML。
-
@DebanjanB - 我搞定了。似乎在操作系统更新期间 IE 安装出现问题。现在已经修复了。
标签: javascript java html selenium selenium-webdriver