Ron*_*onu 22 python selenium webdriver
我正在开发一个Web应用程序,在其中单击某个链接会出现另一个弹出窗口.弹出窗口不是警报,而是一个表单,其中包含用户输入的各种字段,然后单击"下一步".
如何使用selenium处理/自动化此弹出窗口.
摘要: -
Lin*_*say 40
切换到弹出窗口至少有两个不同的原因:
driver.switch_to.window(window_handle)在弹出窗口出现时同时使用它们,以便你可以在弹出窗口中找到元素,并在弹出窗口关闭后,以便你可以在主窗口中找到元素.这里有一些代码可以在执行您请求的序列时解决这些问题.我正在遗漏这些import陈述,我正在使用我希望显而易见的变量名称.另外,请注意我喜欢find_element(s)_by_xpath在我的代码中使用 ; 随意使用其他find_element(s)_by方法:
main_window_handle = None
while not main_window_handle:
main_window_handle = driver.current_window_handle
driver.find_element_by_xpath(u'//a[text()="click here"]').click()
signin_window_handle = None
while not signin_window_handle:
for handle in driver.window_handles:
if handle != main_window_handle:
signin_window_handle = handle
break
driver.switch_to.window(signin_window_handle)
driver.find_element_by_xpath(u'//input[@id="id_1"]').send_keys(user_text_1)
driver.find_element_by_xpath(u'//input[@value="OK"]').click()
driver.find_element_by_xpath(u'//input[@id="id_2"]').send_keys(user_text_2)
driver.find_element_by_xpath(u'//input[@value="OK"]').click()
driver.switch_to.window(main_window_handle) #or driver.switch_to_default_content()
Run Code Online (Sandbox Code Playgroud)
如果某人(可能是我)需要在示例中添加更多内容或提供其他信息,请告诉我更清楚.
如果它是新的window或iframe你应该使用driver.switch_to_frame(webelement)或driver.switch_to_window(window_name).然后,这应该允许您与elements弹出窗口内的内容进行交互.完成后,您应该driver.switch_to_default_content()返回主网页.
| 归档时间: |
|
| 查看次数: |
49636 次 |
| 最近记录: |