元素的属性和方法、三大切换

element对象的属性和方法
元素属性:
  parent 获取元素的父节点
  rect 获取元素的位置信息(宽、高、x轴坐标、y轴坐标)
  tag_name 获取元素的标签名
  text 获取元素的文本信息
元素方法:
  点击 click()
  输入 send_keys()  针对input
  清空 clear()  针对input

切换
iframe切换

'''
当元素嵌套在iframe标签中的时候,要先切换到这个iframe标签中才可以进行元素定位,否则定位不到
br.switch_to.frame() 切换到iframe标签的三种方式
方式1、通过iframe标签的name属性进行切换
方式2、先定位iframe标签,再切换
方式3、通过iframe标签的索引位置进行切换  (iframe标签切换时只能一层一层的去切换)
切换到iframe标签后再切换回原来页面(无论在哪层iframe使用此方法可直接切回原页面)
br.switch_to.default_content()
'''
import time
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By

br = Chrome()
br.get('https://mail.qq.com/')
br.implicitly_wait(2)
# 方式1、通过iframe标签的name属性进行切换
# br.switch_to.frame('login_frame')

# 方式2、先定位iframe标签,再切换
# login_iframe = br.find_element(By.ID,'login_frame')
# br.switch_to.frame(login_iframe)

# 方式3、通过iframe标签的索引位置进行切换  (iframe标签切换时只能一层一层的去切换)
br.switch_to.frame(1)  # 此处索引从0开始
br.find_element(By.ID,'switcher_plogin').click()

# 切换到iframe标签后再切换回原来页面(无论在哪层iframe使用此方法可直接切回原页面)
br.switch_to.default_content()
br.find_element(By.XPATH,'//a[text()="关于腾讯"]').click()

time.sleep(3)
br.quit()

窗口切换

'''
窗口切换
    需要操作以新窗口打开的网页的话需要切换到该窗口;
    可通过打开新窗口之后获取所有的窗口句柄(得到的是列表)索引取值获取;
    如果是点击链接以当前窗口打开的则不需要切换窗口。
'''


import time
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By


br = Chrome()

br.get('https://www.baidu.com/')
# 设置隐式等待
br.implicitly_wait(5)
br.find_element(By.ID,'kw').send_keys('网易云音乐')
br.find_element(By.ID,'su').click()

time.sleep(2)
br.find_element(By.XPATH,'//div[@id=1]//a').click()
windows = br.window_handles

# 切换到新窗口
br.switch_to.window(windows[-1])
# 定位新窗口的元素
br.find_element(By.XPATH,'//*[text()="我的音乐"]').click()

time.sleep(3)
br.quit()
# 多窗口切换,可事先使用变量保存窗口句柄
import time
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By


br = Chrome()

br.get('https://www.baidu.com/')
# 设置隐式等待
br.implicitly_wait(5)
br.find_element(By.ID,'kw').send_keys('网易云音乐')
br.find_element(By.ID,'su').click()
# 获取当前窗口句柄并保存
s_win = br.current_window_handle

time.sleep(2)
br.find_element(By.XPATH,'//div[@id=1]//a').click()
windows = br.window_handles

# 切换到新窗口;最新打开的窗口句柄始终在列表的最后一个,因为底层是使用append方法加进去的
br.switch_to.window(windows[-1])
# 获取当前窗口句柄并保存
new_win1 = br.current_window_handle
# 定位新窗口的元素
br.find_element(By.XPATH,'//*[text()="我的音乐"]').click()

br.switch_to.window(s_win)
br.find_element(By.XPATH,'//div[@id=3]//a').click()
windows = br.window_handles

# 切换到新窗口
br.switch_to.window(windows[-1])
# 获取当前窗口句柄并保存
new_win2 = br.current_window_handle
br.find_element(By.XPATH,'//a[text()="首页"]').click()


time.sleep(3)
br.quit()

alert弹窗切换  alert无元素无法定位,只能切换



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值