我想在selenium python中模拟以下行为(python v2.7,selenium v3.4.2,geckodriver):
点击打开弹出窗口的页面上的链接
在弹出窗口中选择链接并单击
在主窗口上执行其他操作
我有以下代码:
main_window_handle = None
while not main_window_handle:
main_window_handle = driver.current_window_handle
driver.find_element_by_xpath('//*[@title="Open Search Window"]').click()
search_window_handle = None
while not search_window_handle:
for handle in driver.window_handles:
if handle != main_window_handle:
search_window_handle = handle
break
driver.switch_to.window(search_window_handle)
driver.switch_to.frame("resultsFrame")
print "Clicking results frame"
driver.find_element_by_link_text("TestResult").click()
print "Expecting window to close"
driver.switch_to.window(main_window_handle)
它适用于打开弹出窗口,选择框架并单击该框架上的链接。弹出窗口已关闭(这是正确的)但是selenium在此之后挂起,并且“Expecting window to close”的print语句永远不会被执行。它看起来很奇怪,尤其是硒永远不会超时并且一直悬挂直到过程被手动中断。
编辑:
看起来它可能是geckodriver的一个问题,我用chromedriver执行代码并且它有效。