1、下拉列表
# 导入select模块
from
selenium.webdriver.support.select
import
Select
# 获取指定元素
select_loc
=
(By.XPATH,
'//select[@name="ft"]'
)
# 等待指定元素出现
WebDriverWait(driver,
20
).until(EC.visibility_of_element_located(select_loc))
#获取下拉元素
ele
=
driver.find_element(
*
select_loc)
# 创建select对象
s = Select(ele)
# 下标方式选元素
s.select_by_index(
3
)
# value属性选元素
s.select_by_value(
"all"
)
# 文本内容选元素
s.select_by_visible_text(
"Adobe Acrobat PDF (.pdf)"
)
2、Enter按键操作
# 导入按键模块
from
selenium.webdriver.common.keys
import
Keys
# 操作按键
driver.find_element_by_id(
"kw"
).send_keys(
"潇潇"
,Keys.ENTER)
3、js操作日期框
# 修改js的值
js_pha
=
"""
var a = document.getElementById("train_date");
a.readOnly = false;
a.value = "2019-10-10";
"""
# 执行js语句
driver.execute_script(js_pha)
4、js操作滚动条
# 移动到元素element对象的“底端”与当前窗口的“底部”对齐
driver.execute_script("arguments[0].scrollIntoView(false);",element)
# 移动到元素element对象的“顶端”与当前窗口的“顶部”对齐
driver.execute_script("arguments[0].scrollIntoView();",element)
移动到页面底部
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
移动到页面顶部:
driver.execute_script("window.scrollTo(document.body.scrollHeight,
0)")
# 找到我要滚动到可见区域的元素
loc
=
(By.XPATH,
'//a[text()="-软件测试论坛-测试人才交流社区"]'
)
WebDriverWait(driver,
20
).until(EC.visibility_of_element_located(loc))
element
=
driver.find_element(
*
loc)
# 执行js的函数
# 因顶部有遮罩层,所以与可见区域的底部对齐。
driver.execute_script("arguments[0].scrollIntoView(false);",element)
5、窗口切换
# 获取元素
loc = (
By.XPATH,
''
)
# 获取当前窗口数量
cur_handles
=
driver.window_handles
# 操作元素导致出现新的窗口
driver.find_element(
*
loc).click()
# 等待新的窗口出现
WebDriverWait(driver,
20
)
.until(EC.new_window_is_opened(cur_handles))
# 获取当前所有窗口
wins
=
driver.window_handles
# 切换窗口
driver.switch_to.window(wins[
-
1
])
6、iframe切换
# 等待iframe出现并切换窗口
WebDriverWait(driver,
20
).until(
EC.frame_to_be_available_and_switch_to_it((By.XPATH,
'//iframe[@name="login_frame_qq"]'
)))
7、alert弹窗处理
# 做一个操作,导致alert框出现
driver.find_element_by_id(
"press_me"
).click()
# 等待alert出现并直接切换到alert弹窗
alert
=
WebDriverWait(driver,
10
).until(EC.alert_is_present())
# 点击确定,关闭弹框
alert.accept()
8、上传操作
# 导入win32库
import
win32gui
import
win32con
# 前提 :windows上传窗口已经出现。sleep1-2秒等待弹出的出现。
def
upload(filePath,browser_type
=
"chrome"
):
if
browser_type
=
=
"chrome"
:
title
=
"打开"
else
:
title
=
""
#找元素
#一级窗口"#32770","打开"
dialog
=
win32gui.FindWindow(
"#32770"
,title)
#
ComboBoxEx32
=
win32gui.FindWindowEx(dialog,
0
,
"ComboBoxEx32"
,
None
)
#二级
comboBox
=
win32gui.FindWindowEx(ComboBoxEx32,
0
,
"ComboBox"
,
None
)
#三级
#编辑按钮
edit
=
win32gui.FindWindowEx(comboBox,
0
,
'Edit'
,
None
)
#四级
#打开按钮
button
=
win32gui.FindWindowEx(dialog,
0
,
'Button'
,
"打开(&O)"
)
#二级
#往编辑当中,输入文件路径 。
win32gui.SendMessage(edit,win32con.WM_SETTEXT,
None
,filePath)
#发送文件路径
win32gui.SendMessage(dialog, win32con.WM_COMMAND,
1
, button)
#点击打开按钮