从0开始python学习-31.selenium 文本输入框、下拉选择框、文件上传、时间插件选择元素定位

目录

1. 纯文本输入框

2. 存在默认值的文本输入

 3. 下拉选择框

4. 输入后下拉选择框

5. 文件上传

6. 时间插件


1. 纯文本输入框

driver.find_element(By.XPATH,'/html/body/div[2]/td[2]/input').send_keys('测试名称')

2. 存在默认值的文本输入

注意:

1. 这种存在默认值的情况在做自动化测试的时候可以选择不做处理,直接略过该元素,也可以先将默认值清除后再进行输入的方式进行测试

2.如果是下图这种需要具有唯一性的数据,可以使用随机数的方式进行写入,可以有效避免冲出ID出现

driver.find_element(By.XPATH,'/html/body/div[2]/tr[3]/td[2]/input').clear()
driver.find_element(By.XPATH,'/html/body/div[2]/tr[3]/td[2]/input').send_keys('ID123'+str(randint(100,999))+'K')

 3. 下拉选择框

从0开始python学习-31.selenium 文本输入框、下拉选择框、文件上传、时间插件选择元素定位_第1张图片

Select(driver.find_element(By.XPATH,'/html/body/div[2]/tr[8]/td[2]/select')).select_by_value('1')

4. 输入后下拉选择框

注意:下拉选择的元素为【baidu12 [null]】,使用xpath的方式可能无法定位到,可以通过手写xpath来完成

从0开始python学习-31.selenium 文本输入框、下拉选择框、文件上传、时间插件选择元素定位_第2张图片

# 先找到元素后输入关键词
driver.find_element(By.XPATH,'/html/body/div[2]/tr[6]/td[2]/input[1]').send_keys('baidu12')
sleep(2)
# 等待2秒让下拉框能加载完成后选择需要的选择后点击
# 这种下拉选择元素的xpath不确定,所以可以根据标签来手动写xpath
driver.find_element(By.XPATH,'//strong[text()="baidu12"]').click()

5. 文件上传

  • 文件上传因为点击【浏览】选择的框非浏览器中的操作了,因为无法使用自动化脚本来进行选择,选择使用强制写入的方式将文件路径写入
  • 文件上传有个明显特征就是【type="file"】,只要照导这个就能进行写入,如下

从0开始python学习-31.selenium 文本输入框、下拉选择框、文件上传、时间插件选择元素定位_第3张图片

driver.find_element(By.XPATH,'/html/body/div[2]/tr[14]/td[2]/span/div[1]/div/div/button').click()
sleep(5)
# 这里应该【本地上传】的xpath一直会变,所以使用文本的方式点击会更准确一点 //li[text()='本地上传']
driver.find_element(By.XPATH,'//li[text()="本地上传"]').click()

sleep(2)
# 文件上传需要写入外部文件,自动化脚本无法点击浏览器外的内容,所以这里选择强制写入文件的方式,注意一点就是文件的type=file,所以这里一定要找type=file的元素对应xpath
driver.find_element(By.XPATH,'//input[@type="file"]').send_keys(r'D:\python\test\1.png')  
sleep(1)
driver.find_element(By.XPATH,'/html/body/div[6]/div[1]/div[3]/span[1]/input').click()

6. 时间插件

  • 时间插件选择首先需要获取到输入框的xpath:e = driver.find_element(By.XPATH,'//*[@id="start_time"]')
  • 根据获取到的XPATH在js中可以调试:$x('//*[@id="start_time"]')[0].value='2023-10-06 10:00:38'
  • 然后进行强制写入的方式进行:driver.execute_script('arguments[0].value="2023-10-06 10:00:38"',e)

从0开始python学习-31.selenium 文本输入框、下拉选择框、文件上传、时间插件选择元素定位_第4张图片

driver.implicitly_wait(3)
e = driver.find_element(By.XPATH,'//*[@id="start_time"]')
# 时间插件可以使用强制输入的形式写入时间,但是需要配合JS进行,方法如下
driver.execute_script('arguments[0].value="2023-10-06 10:00:00"',e)

你可能感兴趣的:(python,python,学习,selenium,开发语言,测试工具)