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 webdriverdriver=webdriver.Chrome()driver.maximize_window()driver.implicitly_wait(10)import timedriver.get("https://www.baidu.com/")

#获取当前页面句柄current_handle=driver.current_window_handledriver.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()

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

原文地址:https://www.cnblogs.com/star12111/p/9784399.html

时间: 2024-11-10 08:06:09

selenium多表单操作与多窗口,以及警告框处理的相关文章

表单操作-复选框

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表单操作-复选框</title> <style> *{margin:0; padding: 0;} li{list-style: none;} .clearfix:before,.clearfix:after{display: table; co

表单操作集合类.

/** * @class FormOperation 表单操作方法集合类 * @constructor */ function FormOperation(){ var TIP_CLASS_NAME = "tip-messages"; //消息显示框类 var TIP_SHOW_TIME = 5000; //消息框显示时间 /** * 检测必须字段 * @param{String} className 类名 * @param{Boolean} showTip 是否显示提示框,默认tru

HTML表单操作的记录

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="

7 frame表单切换、多窗口切换

frame表单切换.多窗口切换 1 frame表单 frame:HTML页面中的一种框架,主要作用是在当前页面中指定区域显示另一页面元素(HTML语言中,frame/iframe标签为表单框架) 1.1 frame表单切换 说明:在WebDriver类库中封装了HTML页面中使用frame表单框架技术定位的方法 方法: 1). driver.switch_to.frame("myframe1") 切换表单方法 (myframe1:为frame表单的name或id) 2). driver

Selenium实战(三)——滑动解锁+窗口截图

一.简单滑块的实例 当单机滑块时,改变的只是CSS样式,HTML代码如下: 1 <div class="slide-to-unlock-progress" style="background-color: rgb(255, 233, 127); height: 36px;"></div> 2 <div class="slide-to-unlock-handle" style="background-colo

struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($("#textValue").val() == "") {3                 $("#errortip").html("<font color='#FF0000'>请输入查询内容</font>")

Selenium + Python 警告框处理

这几天在学WebDriver的警告框处理,具体做法是使用switch_to_alert()方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作. 但是却一直卡在接受警告框这一步上,在书上给出的例子是百度首页的搜索设置弹出窗口,可是代码运行后,总是在报错:selenium.common.exceptions.NoSuchElementException: Message: Unable to locate elemen

selenium - switch_to_alert() - 警告框处理

在WebDriver中处理JavaScript所生成的alert.confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/ send_keys等方法进行操作. text:返回 alert/confirm/prompt 中的文字信息. accept():接受现有警告框. dismiss():解散现有警告框. send_keys(keysToSend):发送文本至警告

Python+Selenium学习笔记9 - 警告框处理

如下图所示,这种窗口是不能通过前端工具对其进行定位的,这里可以通过switch_to_alert()方法去接受这个弹窗 1 # coding = utf-8 2 3 from selenium import webdriver 4 from selenium.webdriver.common.action_chains import ActionChains 5 import time 6 7 dr = webdriver.Firefox() 8 dr.get("http://www.baidu