我是python(2.7)和Selenium Webdriver的新手。
我正在尝试注册http://way2automation.com/way2auto_jquery/index.php

到目前为止,我一直无法切换到注册弹出窗口。

我试过了

driver.get("http://www.way2automation.com/demo.html")
regElem = driver.find_element_by_link_text("Registration").click()

driver.switch_to.frame(driver.find_element_by_id("login"))

nameElem = driver.find_element_by_name("name").clear()
nameElem.send_keys("NameBla")


在尝试切换到弹出窗口的地方,我检查了不同的xpath和不同的方法switch_to_frame / switch_to_window / alert / etc。但是没有运气:(

最佳答案

实际上,您不需要处理任何iframes。目标fieldset位于简单的div中,因此您只需要等待其存在即可

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Chrome()
driver.get("http://www.way2automation.com/demo.html")
current = driver.current_window_handle
driver.find_element_by_link_text("Registration").click()
new =  [window for window in driver.window_handles if window != current][0]
driver.switch_to_window(new)
wait = WebDriverWait(driver, 10)
nameElem = wait.until(EC.element_to_be_clickable((By.NAME,'name')))
nameElem.send_keys("NameBla")


无需切换到frame / switch_to_window / alert / etc

关于javascript - Python-Selenium WebDriver-无法切换到注册弹出窗口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41828847/

10-10 13:51