当前位置:   article > 正文

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

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出现

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

 3. 下拉选择框

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

4. 输入后下拉选择框

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

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

5. 文件上传

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

  1. driver.find_element(By.XPATH,'/html/body/div[2]/tr[14]/td[2]/span/div[1]/div/div/button').click()
  2. sleep(5)
  3. # 这里应该【本地上传】的xpath一直会变,所以使用文本的方式点击会更准确一点 //li[text()='本地上传']
  4. driver.find_element(By.XPATH,'//li[text()="本地上传"]').click()
  5. sleep(2)
  6. # 文件上传需要写入外部文件,自动化脚本无法点击浏览器外的内容,所以这里选择强制写入文件的方式,注意一点就是文件的type=file,所以这里一定要找type=file的元素对应xpath
  7. driver.find_element(By.XPATH,'//input[@type="file"]').send_keys(r'D:\python\test\1.png')
  8. sleep(1)
  9. 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)

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/480917
推荐阅读
相关标签
  

闽ICP备14008679号