2024-05-14 07:52:17 发布
网友
我试图在python中单击一个java脚本组合框,但是如果我正常地这样做,它会给我一个错误,说组合框是隐藏的,我通过编程等待组合框出现,但它没有出现。组合框中的这个选项是一个子菜单,但是,如果我只从真实菜单中选择一个选项,它可以工作,但不能与子菜单选项一起使用。{maegini-backed&maeginam高级搜索框,{maeginam>;&maeginam高级搜索框。谢谢!在
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()); }
希望这对你有帮助)
Selenium将无法单击,因为您要选择的元素被认为是不可见的(不活动的)。所以使用js解决这个问题的唯一方法(imho)。 在爪哇对我有用:
希望这对你有帮助)
相关问题 更多 >
编程相关推荐