Комбинированный веб-сайт Selenium

Я пытаюсь щелкнуть поле со списком java-скриптов в python, однако если я это делаю нормально, это дает мне ошибку, говоря, что поле со списком скрыто, я запрограммировал автоматический просмотр поля со списком, но он не появляется. Этот параметр в комбинированном поле является подменю, однако, если я выбираю только опцию из реального меню, он работает, но не с параметрами подменю. Это сайт, https://mbsdisclosure.fanniemae.com/PoolTalk2/index.html ,> Расширенный поиск> # then combo box Я ищу опцию подменю для предварительной Mega> Предварительная Mega: Fannie Mae / Ginnie Mae поддерживаемая регулируемая скорость. Благодаря!

One Solution collect form web for “Комбинированный веб-сайт Selenium”

Селен не сможет щелкнуть, поскольку элемент, который вы хотите выбрать, считается невидимым (неактивным). Таким образом, единственный способ (imho) использовать js для решения этой проблемы. Это работало для меня в java:

@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()); } 

Надеюсь, это поможет вам)

Interesting Posts
Python - лучший язык программирования в мире.