selenium - 在弹出窗口中单击子选项后的图像保持不变
问题描述
在我的应用程序左侧菜单栏中,其中包含一个应用程序的 8 个模块。每个模块都包含子选项。我正在尝试单击具有 30 个子选项(页面)的特定模块中的一个子选项。但是在单击特定选项后,弹出窗口保持原样,并且不允许我单击弹出屏幕后面的选项。在弹出屏幕后面,下拉选项在那里,并且想要从该下拉列表中选择一个选项。它给了我一个错误“org.openqa.selenium.JavascriptException:javascript错误:无法在'Document'上执行'elementsFromPoint':提供的双精度值是非有限的。” 这是代码
//div[@id='main-nav']/ul
——给我 6 个模块名称(6 ul):
<ul class="main-nav-gray-border user-details-menu-tab left-nav-main-menu-container left-nav-img-ul" xpath="1"></ul>
<ul class="main-nav-gray-border menu-items-main-menu-list left-nav-main-menu-container left-nav-img-ul" xpath="2">
<li class="main-nav-img-label" id="admin-nav">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="main-nav-icons"></svg>
<label>
Analytics
</label>
<ul class="nav-items admin-menu-items" style="top: 50px;" id="admin-menu-items">
<li class="side-nav-titles"></li>
<a class="module-item-child selected-nav-item" href="#" id="QualityMeasures37" onclick="loadModule('Analytics/Index?dashboardUrlId=71', 2,'QualityMeasures', 37,null,'Quality Measures')" xpath="1">
<li>**Quality Measures**</li>
</a>
<a class="module-child " id="QualityMainView38" onclick="loadModule('Analytics/Index?dashboardUrlId=93', 2,'QualityMainView', 38,null,'Quality Main View')"></a>
<a class="module-child " id="QualityRanking39" onclick="loadModule('Analytics/Index?dashboardUrlId=94', 2,'QualityRanking', 39,null,'Quality Ranking')"></a>
<a class="module-child " id="QualityTrending40" onclick="loadModule('Analytics/Index?dashboardUrlId=95', 2,'QualityTrending', 40,null,'Quality Trending')"></a>
<a class="module-child user-default-module selected-nav-item" href="#" id="DetailedFinanceAndUtilization41" onclick="loadModule('Analytics/Index?dashboardUrlId=76', 2,'DetailedFinanceAndUtilization', 41,null,'Detailed Finance & Utilization')"></a>
<a class="module-child " id="DetailedFinanceandUtilizationPro42" onclick="loadModule('Analytics/Index?dashboardUrlId=77', 2,'DetailedFinanceandUtilizationPro', 42,null,'Detailed Finance & Utilization Professional')"></a>
<a class="module-child " id="PartAClaimsAnalysis43" onclick="loadModule('Analytics/Index?dashboardUrlId=87', 2,'PartAClaimsAnalysis', 43,null,'Facility Claims Analysis')"></a>
</ul>
</li>
</ul>
<ul class="main-nav-gray-border menu-items-main-menu-list left-nav-main-menu-container left-nav-img-ul" xpath="3"></ul>
<ul class="icon-minimizer" id="minimizer-nav" xpath="7"></ul>
这是下拉菜单的代码。
<div class="dd-select" style="width: 100px; background: rgb(245, 245, 245);" xpath="1">
<input class="dd-selected-value" type="hidden" value="Level1"><a class="dd-selected"><label class="dd-selected-text" title="Enterprise">Enterprise</label></a>
<span class="dd-pointer dd-pointer-down"></span></div>
这是从下拉菜单中选择选项的代码。
<div id="SelectedHierarchyLevelName" class="dd-container" style="width: 100px;" xpath="1">
<div class="dd-select" style="width: 100px; background: rgb(245, 245, 245);">
<input class="dd-selected-value" type="hidden" value="Level3">
<a class="dd-selected">
<label class="dd-selected-text" title="Facility">**Facility**</label></a>
<span class="dd-pointer dd-pointer-down dd-pointer-up"></span></div>
<ul class="dd-options dd-click-off-close" style="min-width: 100px; height: 150px; overflow: auto; box-shadow: rgba(0, 0, 0, 0.176) 0px 6px 16px; display: block;">
<li class=""><a class="dd-option"> <input class="dd-option-value" type="hidden" value="Level1"> <label class="dd-option-text">Enterprise</label></a></li>
<li class=""><a class="dd-option"> <input class="dd-option-value" type="hidden" value="Level2"> <label class="dd-option-text">Ministry</label></a></li>
<li class=""><a class="dd-option dd-option-selected"> <input class="dd-option-value" type="hidden" value="Level3"> <label class="dd-option-text">Facility</label></a></li>
<li class=""><a class="dd-option"> <input class="dd-option-value" type="hidden" value="Level4"> <label class="dd-option-text">Med Group/Division</label></a></li>
<li class="hideMe"><a class="dd-option"> <input class="dd-option-value" type="hidden" value="Missing Providers"> <label class="dd-option-text">Missing Providers</label></a></li>
<li class=""><a class="dd-option"> <input class="dd-option-value" type="hidden" value="Help"> <label class="dd-option-text">Help</label></a></li>
<li class="hideMe"><a class="dd-option"> <input class="dd-option-value" type="hidden" value="L0Simulation"> <label class="dd-option-text">Unknown Simulation</label></a></li></ul></div>
我试过以下:
@FindBy(id="admin-nav")
WebElement mouseHover;
@FindBy(xpath="//a[@id='QualityMeasures37']//li[contains(text(),'Quality Measures')]")
WebElement btnQualityMeasure;
@FindBy(xpath="//div[@id='SelectedHierarchyLevelName']//span[@class='dd-pointer dd-pointer-down']")
WebElement dropDown;
@FindBy(xpath="//label[contains(text(),'Facility')]")
WebElement facilityOption;
public void hoverTest() throws Exception
{
Actions act = new Actions(driver);
act.moveToElement(mouseHover).build().perform();
Thread.sleep(2000);
// ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", btnQualityMeasure);
// Thread.sleep(1000);
act.moveToElement(btnQualityMeasure).click().build().perform(); //clicking on suboption
Thread.sleep(10500);
}
public void clickDropDownButton()
{
Actions act = new Actions(driver);
act.moveToElement(dropDown).click().build().perform();
}
public void selectFromDropDown() throws Exception{
Actions act1 = new Actions(driver);
// ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", ministryOption);
// Thread.sleep(1000);
act1.moveToElement(ministryOption).click().build().perform();
Thread.sleep(1500);
//第一种方法Mousehover它并选择所需的子选项。第二种方法单击下拉按钮,第三种方法从下拉列表中选择选项。简而言之,应从“分析”模块中选择“质量测量”子选项,然后在该页面上单击一个下拉菜单并选择“设施”选项。我在上面的代码中将所有 3 都突出显示为粗体。它给了我一个错误“它给了我一个错误”org.openqa.selenium.JavascriptException:javascript错误:无法在“文档”上执行“elementsFromPoint”:提供的双精度值是非有限的。”有时它不会打开所需的子选项。任何帮助将不胜感激。
解决方案
推荐阅读
- android - Android附件/文件选择器进入InputStream字符串
- php - Facebook 登录问题:ERR_INVALID_REDIRECT
- django - 在子表上指定注释字段
- google-sheets - 如何编写用于自动上传/插入保存在团队驱动器中的图像的脚本?
- asp.net - 为什么 server.mapPath 在生产中是无效的报告文件路径但本地机器是有效的?
- javascript - Laravel mix 4 Amcharts 动态导入问题
- https - JMeter - “通过 SSL 对 http 的空响应。可能正在等待用户授权证书”
- python - `MagicMock` 可以与 python3 中的 int 进行比较吗?
- c++ - 将浮点类型转换为两个短(高字节和低字节)
- signalr - 如何将自定义标头从 React JS 客户端传递到 SignalR 集线器?