首页 > 解决方案 > 在弹出窗口中单击子选项后的图像保持不变

问题描述

在我的应用程序左侧菜单栏中,其中包含一个应用程序的 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 &amp; Utilization')"></a>
    <a class="module-child "  id="DetailedFinanceandUtilizationPro42" onclick="loadModule('Analytics/Index?dashboardUrlId=77', 2,'DetailedFinanceandUtilizationPro', 42,null,'Detailed Finance &amp; 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”:提供的双精度值是非有限的。”有时它不会打开所需的子选项。任何帮助将不胜感激。

标签: selenium

解决方案


推荐阅读