失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > py+seleneium(多窗口操作 alert窗口操作 元素 上传的一些方法)

py+seleneium(多窗口操作 alert窗口操作 元素 上传的一些方法)

时间:2019-12-29 20:23:34

相关推荐

py+seleneium(多窗口操作 alert窗口操作 元素 上传的一些方法)

在使用selenium时,会出现一些情况,就是有多个窗口的情况selenium怎么从一个窗口跳入到另外一个窗口操作,下面还是看代码

handle1 = driver.current_window_handle#获取当前窗口,可以先保存下来,等需要用时直接跳入这个窗口handles = driver.window_handles#获取当前打开的所有窗口for handle in handles :driver.switch_to_window(handle)#当title在这个页面的标题时,结束循环,此时selenium控制的就是这个窗口if 'title' in driver.title:breakdriver.switch_to_window(handle1)#此时进入的是第一个窗口

获取当前窗口title

driver.title

获取当前窗口地址栏url

driver.current_url

窗口内容标题更新时,title和current_url也会随之而更新

页面更新时,可以通过查找更新页面的元素来判断页面加载完成,此时获取的title或url为新页面的title或url

再说下alert弹窗,弹窗目前分为三种alert、confirm、pormpt三种弹窗,但是操作时用的都是一种方法

al = driver.switch_to_alert()al.accept()#确定按钮al.dismiss()#取消按钮al.send_keys('value')#在confirm或者pormpt框中输入值al.accept()#确定

再说下上传这个操作,这个操作需要导入包了,因为这个其实不是针对网页的操作,是针对电脑的操作,可能还有一些其他的操作方法,我只是说其中一种

这个前面是要先定位到上传文件的那个元素,点击之后才有下面的这些操作

import win32com.clientshell = win32com.client.Dispatch('WScript Shell')# 有的系统要加 '\r'# 有的系统要加 '\r\n'#使用shell对象的Sendkeys方法给应用程序发送字符串shell.SendKeys('文件绝对路径'+'\n')

输入法记得调成英文的,默认中文会导致某些字符输入不进去

再说下同一个页面的一些常规操作

driver.refresh()#刷新页面driver.back()#后退到前一个页面driver.forward()#前进到下一个页面driver.maximize_window()#当前窗口最大化driver.get_screenshot_as_file('D:/baidu.png')#截图,后面那个是绝对路径

还有一个小技巧,有时候有的页面是需要鼠标悬浮能显出元素,鼠标移动去定位元素是,页面就没有了比如下方这个截图

这种情况鼠标动的话页面就不见了可能没有办法更好的定位元素,这时需要一种方法可以固定住这个页面这个方法是在下方的console控制台里操作输入setTimeout(function(){debugger},5000),这样整个页面就被暂时冻住了,我们可以更好的定位元素了

还有一些元素的方法,比如单选、多选、复选这些问题

先说下单选和多选

ele=driver.find_element_by_xpath('132')ele.clear()ele.get_attribute('value')#取出元素输入框框中原始的值,就是反显的请输入用户名什么的ele.is_selected()#判断元素是否被选中 多选框判断是否被选中 这种的标签名是inputfrom selenium.webdriver.support.select import Selectse = Select(ele)#大标签名为select的都能用下面的select操作se.select_by_visible_text('奔驰')se.select_by_visible_text('雅阁')#标签名为option的复选框这样取值se.deselect_by_index(0)se.deselect_by_value('属性value的值')

这一块代码后续还要补充,暂时先这样

如果觉得《py+seleneium(多窗口操作 alert窗口操作 元素 上传的一些方法)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。