webdriver实现基本语法
- 1.Select下拉列表
- 1.1下拉列表单选
- 1.2下拉列表多选
- 2.非Select下拉列表
- 3.文件上传
- 1.1input单个文件上传
- 1.2input多个文件上传
- 1.3非input文件上传
1.Select下拉列表
1.1下拉列表单选
from selenium import webdriver
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://sahitest.com/demo/selectTest.htm')
se = Select(driver.find_element('id', 's1Id')) # 定位下拉列表元素
# 根据索引选择 0-表示第一列
se.select_by_index(1) # 结果:选中o1
# 根据值来选择 前端页面value="o2"
se.select_by_value('o2') # 结果:选中o2
#根据文本选择,下拉列表显示的文字
se.select_by_visible_text('o3') # 结果:选中o3
#循环打印下拉框选项 options 所有选项
for options in se.options:
print(options.text)
1.2下拉列表多选
from selenium import webdriver
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://sahitest.com/demo/selectTest.htm')
# 选择连续的几列
se = Select(driver.find_element('id', 's4Id')) # 定位下拉列表元素
for i in range(2, 6):
se.select_by_index(i) # 显示o2到最后一个
# 选择不连续的几列,结合ctrl键
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys # 使用键盘
element1 = driver.find_element('xpath', '//*[@id="s4Id"]/option[3]') # 定位o2
element2 = driver.find_element('xpath', '//*[@id="s4Id"]/option[5]') # 定位最后一个
ActionChains(driver).key_down(Keys.CONTROL).click(element1).key_up(Keys.CONTROL).perform() # 选中o2
ActionChains(driver).key_down(Keys.CONTROL).click(element2).key_up(Keys.CONTROL).perform() # 选中最后一个
2.非Select下拉列表
(1)前端效果是这样的,点击输入框,出现下列列表,选择其中一个
定位输入框,点击,激活下列列表
定位下列列表的列,注意这里使用Google自带的复制xpath,可能定位不准,需要自己手动去定位列的xpath
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('')
driver.find_element('xpath', '//*[@id="userLayout"]/div/div[2]/div/div/form/div[1]/div/div/span/div').click() # 点击输入框,激活下列列表
driver.find_element('xpath', '//div[@id="popContainer"]/div[2]/div/div/div/ul/li[38]').click() # 点击列表的第38列
(2)这种多级下拉列表的与上方雷同。第一级定位点击,激活下一级,第二级定位点击,激活下一级,第三级定位点击。
#定位输入框,点击,激活下拉列表
driver.find_element('xpath', '//*[@id="popContainer"]/div[1]/div/section/section/main/div/div[2]/div/div/div/div[1]/div/div[2]/form/div/div[1]/div/div[2]/div/span/span').click()
#第一级定位点击,激活下一级下拉列表
driver.find_element('xpath', '//*[@id="popContainer"]/div[2]/div/div/div/ul/li[3]').click()
# 第二级定位点击,激活下一级下拉列表
driver.find_element('xpath', '//*[@id="popContainer"]/div[2]/div/div/div/ul[2]/li[1]').click()
# 第三级定位点击
driver.find_element('xpath', '//*[@id="popContainer"]/div[2]/div/div/div/ul[3]/li[1]').click()
3.文件上传
1.1input单个文件上传
前端代码
driver.find_element('xpath', '//input[@type="file"]).send_keys('C:\pig\counting-video\5.mp4') # z直接输入文件绝对路径
1.2input多个文件上传
多文件上传就是在文件路径框里用引号括起单个路径,然后用逗号隔开多个路径