python+webdriver 怎么实现页面转换,原来转换方法这么多

每当遇到定位不到的元素,你会有哪几方面的反思,等待时间不够?属性不唯一?或许忘了一个庞大的群体性问题——元素不在当前页,不要理解得太狭隘,这个“页面”是广义的。

想想浏览器有哪些操作涉及页面转换?window handler、iframe、alert、prompt、confirm,不列举真想不到页面的种类这么多,方法也是变幻莫测。

 

标签页(window_handle)

在转换标签页前,先来创建几个用于测试的标签页。

js命令:

js="window.open('http://www.baidu.com')"

driver.execute_script(js)

 

# 获取当前窗口句柄

current_handle = driver.current_window_handle

print(driver.current_window_handle)

# 指定所有窗口句柄

print(driver.window_handles)

# 转换到指定窗口句柄

driver.switch_to.window(driver.window_handles[1])

current_handle = driver.current_window_handle

print(driver.current_window_handle)

 

框架嵌入页(iframe、frame)

# 存在唯一id属性

driver.switch_to.frame("id")

# 存在唯一name属性

driver.switch_to.frame("name")

# 定位iframe元素

iframe = driver.find_element_by_css_selector("")

driver.switch_to.frame(iframe)

# 通过index索引定位,同列表顺序

driver.switch_to.frame(1)

# 返回主页面

driver.switch_to.default_content()



# 同层级多个iframe,按照列表顺序指定iframe

# 从指定iframe返回另一ifame

driver.switch_to.parent_frame()

# 从指定iframe返回top页

driver.switch_to.default_content()

# 嵌套iframe,把iframe想象成洋葱,逐层进入

 

弹出框(alert/confirm/prompt)

# 切换到警告弹出框

propt = driver.switch_to.alert

# 获取alert上的文本信息

propt.text

# 输入框输入信息

propt.send_keys("keyword")

# Alert确认

propt.accept()

# Alert取消

propt.dismiss()

# 给需要验证的Alert发送账号和密码,确认

propt.authenticate("username","password")

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值