Selenium网络绘图组合框

2024-05-14 07:52:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python中单击一个java脚本组合框,但是如果我正常地这样做,它会给我一个错误,说组合框是隐藏的,我通过编程等待组合框出现,但它没有出现。组合框中的这个选项是一个子菜单,但是,如果我只从真实菜单中选择一个选项,它可以工作,但不能与子菜单选项一起使用。{maegini-backed&maeginam高级搜索框,{maeginam>;&maeginam高级搜索框。谢谢!在


Tags: gt脚本选项编程错误菜单javabacked
1条回答
网友
1楼 · 发布于 2024-05-14 07:52:17

Selenium将无法单击,因为您要选择的元素被认为是不可见的(不活动的)。所以使用js解决这个问题的唯一方法(imho)。 在爪哇对我有用:

 @Test
    public void neeededDropdownSelect() throws InterruptedException {
        driver.get("https://mbsdisclosure.fanniemae.com/PoolTalk2/index.html");
          jsClickOnElement("li#tab_1>a>span");
        WebElement dropdownMenu = fluentWait(By.cssSelector("span#asSelectedSecType"));
        dropdownMenu.click();


        jsClickOnElement("div[class=\"fg-menu-container ui-widget ui-widget-content ui-corner-all fg-menu-flyout\"] ul[class=\"fg-menu ui-corner-all\"]>li>a[id=\"MEGA_INTERIM\"]");
        jsClickOnElement("div[class=\"fg-menu-container ui-widget ui-widget-content ui-corner-all fg-menu-flyout\"] ul[class=\"fg-menu ui-corner-all\"]>li>ul.ui-corner-all a[id=\"MEGA_INTERIM_ARM\"]");

    }

  public WebElement fluentWait(final By locator){
        Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
                .withTimeout(30, TimeUnit.SECONDS)
                .pollingEvery(5, TimeUnit.SECONDS)
                .ignoring(NoSuchElementException.class);

        WebElement foo = wait.until(
                new Function<WebDriver, WebElement>() {
                    public WebElement apply(WebDriver driver) {
                        return driver.findElement(locator);
                    }
                }
        );
        return  foo;              }     ;

    public void jsClickOnElement(String cssSel){
        JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x = $(\'"+cssSel+"\');");
        stringBuilder.append("x.click();");
        js.executeScript(stringBuilder.toString());

    }

希望这对你有帮助)

相关问题 更多 >

    热门问题