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 '搜狗搜索' in driver.title:#title是标题的名字比如百度就是百度一下。。。搜狗就是搜狗搜索。。。
        break

	driver.switch_to_window(handle1)#此时进入的窗口就是当前窗口就是我们需要定位的窗口也就是搜狗搜索那个窗口,如果我们需要的是百度,那么把if条件搜狗搜索改为百度一下

获取当前窗口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.client
        shell = 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()#判断元素是否被选中   多选框判断是否被选中  这种的标签名是input
from selenium.webdriver.support.select import Select
se = 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的值')

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhaoXuWen23

你的鼓励是我的动力,持续更新中

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值