selenium多表单操作与多窗口,以及警告框处理

Posted star12111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium多表单操作与多窗口,以及警告框处理相关的知识,希望对你有一定的参考价值。

知识是需要经常温习的,不然是很容易遗忘的。

以前自己操作IFRAME,多窗口的时候,觉得很简单。半年没有操作自动化了,知识又还了回去。

写博客有一个好处,可以把自己记住的知识点记录下来,这样,以后自己来翻看的时候,可以很快的找到思路。

毕竟自己不是大神,所以还是多记录一下。

一,多表单切换:

例子:

driver.switch_to.iframe(""if"")

driver.find_element_by_css_selector("[name=kw].").click()

switch_to.frame()默认可以直接取表单的ID,name属性。如果iframe没有可用的id,name属性,则可以通过下面的方式进行的定位。

xf=driver.find_element_by_css_selector(".class")   #先通过CSS定位到iframe

driver.switch_to.frame(xf)                            ##再将定位对象传给switch_to.frame()方法。

 

driver.find_element_by_css_selector(".class")                              ###再来操作元素。

driver.switch_to.parent_frame()                                              ###完成了再当前表单上的操作,则跳出当前一级表单。

 

多窗口操作:

from selenium import webdriver
driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)
import time
driver.get("https://www.baidu.com/")

#获取当前页面句柄
current_handle=driver.current_window_handle
driver.find_element_by_css_selector("div#u1>a:nth-child(7)").click()
driver.find_element_by_link_text(u"立即注册").click()
time.sleep(1)

#获得当前所有打开窗口的句柄
all_handles=driver.window_handles

#进入注册页面窗口
for handle in all_handles:
if handle!=current_handle:
driver.switch_to_window(handle)
driver.find_element_by_css_selector("[name=userName]").clear()
driver.find_element_by_css_selector("[name=userName]").send_keys("username")
driver.find_element_by_css_selector("[name=phone]").clear()
driver.find_element_by_css_selector("[name=phone]").send_keys(1313313)
time.sleep(1)

#回到百度搜索页面
for handle in all_handles:
if handle==current_handle:
driver.switch_to_window(current_handle)
driver.find_element_by_css_selector("#TANGRAM__PSP_4__closeBtn").click()
time.sleep(1)
driver.find_element_by_css_selector("#kw").send_keys("selenium")
driver.find_element_by_css_selector("#su").click()
time.sleep(2)

driver.quit()

直接上例子,看的更直观些。

 





































以上是关于selenium多表单操作与多窗口,以及警告框处理的主要内容,如果未能解决你的问题,请参考以下文章

详解介绍Selenium常用API的使用--Java语言(完整版)

技术分享 | 网页 frame 与多窗口处理

Selenium + Python 警告框处理

Selenium - Web自动化测试的基本操作实现

selenium - switch_to_alert() - 警告框处理

自动化测试:Selenium高级操作