webdirver初识_元素定位_鼠标操作


from selenium import webdriver
#1、鼠标悬停,导入提供鼠标操作的 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep,ctime
"""
ActionChains 类提供了鼠标操作的常用方法: 
perform(): 执行所有 ActionChains 中存储的行为; 
context_click(): 右击; 
double_click(): 双击; 
drag_and_drop(): 拖动; 
move_to_element(): 鼠标悬停
"""
dr = webdriver.Chrome()
dr.get("https://www.baidu.com")
dr.maximize_window()

#2、悬停至设置按钮:
above = dr.find_element_by_css_selector("div#u1 > span#s-usersetting-top")  #定位"设置"悬停按钮
#ActionChains()类传入浏览器驱动dr
ActionChains(dr).move_to_element(above).perform() 

#3、单选框处理:选择搜索设置并打开
dr.find_element_by_class_name('setpref').click() #单选框,点击搜索设置
sleep(10)

dr.find_element_by_id("nr_2").click() #单选框,点击每页20条


"""
4、下拉框处理:
WebDriver 提供了 Select 类来处理下接框
from selenium.webdriver.support.select import Select  #导入Select类

Select 类:用于定位<select>标签
select_by_value:通过 value 值定位下拉选项
select_by_visible_text():通过 text 定位下拉选项
select_by_index():通过下拉选项的 index 顺序定位选项,第一个选项为 0

e.g:
sel = driver.find_element_by_id('nr') #先定位到下拉框选项
Select(sel).select_by_value('20') #每页显示20条
Select(sel).select_by_visible_text("每页显示 20 条")
"""

#5、保存设置按钮:
#<a href="javascript:void(0)" class="prefpanelgo setting-btn c-btn c-btn-primary">保存设置</a>
dr.find_element_by_css_selector(".prefpanelgo").click()

#6、警告框处理:
"""
先使用 switch_to.alert 方法获取警告框,然后用text/accept/dismiss/ send_keys等方法进行操作
text:返回 alert/confirm/prompt 中的文字信息。
accept():接受现有警告框。
dismiss():解散现有警告框。
send_keys(keysToSend):发送文本至警告框。keysToSend:将文本发送至警告框
"""

"""
a1 = dr.switch_to.alert()
a1.accept()  #写法错误
"""

dr.switch_to.alert.accept()   #正确写法

"""
正确写法:
a1 = dr.switch_to.alert
print(a1.text)  #打印警告框内容
a1.accept()
"""

dr.quit()
posted @ 2020-06-25 21:24  月半王令  阅读(99)  评论(0编辑  收藏  举报