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无元素无法定位,只能切换