以下方“节点审批”下拉框为例

  • 该下拉框没有<select>标签,而是<div><ul><li>标签。分别使用Python和RPA网页自动化让下拉框选择=“已审批”

1、Python代码如下

步骤:先点击下拉框获取所有下拉值,然后遍历每个下拉值找到指定文本内容再进行点击

from selenium import webdriver
from time import sleep url="http://xxx.com"
def dropDownBox():
browser = webdriver.Chrome()
browser.get(url)
#窗口最大化
browser.maximize_window()
sleep(1)
#非标准下拉框。点击下拉框
browser.find_element_by_xpath('//*[@id="app"]/div/div[2]/section/div/div/div/form/div[6]/div/div/div/input').click()
sleep(2)
#获取所有选项值再进行for循环遍历内容,符合指定文本则点击选项
#看网页源代码层级关系,'/html/body/div[2]/div[1]/div[1]/ul/li[3]'是已审批状态的绝对路径,它的上一层'/html/body/div[2]/div[1]/div[1]/ul'即为所有选项
orderStatusStr=browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[1]/ul').text
print(type(orderStatusStr))
#将str类型转换为list类型,按换行符进行切片
orderStatusList = orderStatusStr.split("\n")
print(type(orderStatusList),orderStatusList)
approvedStatus = "已审批"
for i in range(len(orderStatusList)) :
statusXpath='/html/body/div[2]/div[1]/div[1]/ul/li['+str(i+1)+']'
print(statusXpath)
orderStatus = browser.find_element_by_xpath(statusXpath).text
if orderStatus==approvedStatus:
print(orderStatus+" 状态符合指定文本内容,点击此选项")
browser.find_element_by_xpath(statusXpath).click()
#如果下拉选项有独立的title,也可直接使用xpath定位而不用遍历所有选项
#browser.find_element_by_xpath('//*[@title="已审批"]').click()
else:
print(orderStatus + " 状态不符合指定文本内容")
sleep(2) if __name__=="__main__":
dropDownBox()

运行结果

2、RPA指令如下

步骤:先点击下拉框,再根据文本内容点击下拉选项

其中“节点状态_选择值”元素指定了属性innerText=已审批

Python和RPA网页自动化-让非标准下拉框选择指定文本的方法的更多相关文章

  1. robotframework自动化系列:随机下拉框

    robotframework自动化系列:随机下拉框 随着项目自动化不断推进,在下拉框定位的时候出现些问题,每次下拉框选择都是相同的下拉选项,如果想每次选择的选项不一样,该如何实现呢,查找了很多资料,没 ...

  2. Python+selenium之获取文本值和下拉框选择数据

    Python+selenium之获取文本值和下拉框选择数据 一.结合实例进行描述 1. 实例如下所示: #新增标签操作 def func_labels(self): self.driver.find_ ...

  3. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  4. selenium自动化实例: 多层框架中关于iframe的定位,以及select下拉框选择

    对于一个自动化的初学者来说会很常见的遇到元素明明存在却始终定位不到, 从而导致脚本报错,当然定位不到元素的原因很多, 其中一种就是多层框架iframe导致的 下方截图示意: 下方为写脚本时候的示例并其 ...

  5. bootstrap中table页面做省市区级联效果(级联库见前面级联编辑)(非select下拉框)

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. 一句话在网页右上角加一个精致下拉框:forkme on github

    随着我国科技水平不断发展,玩Github的童鞋越来越多了,按照惯例,开源项目会有一个示例网站,而网站的右上角,通常会有一个forkme on github,这说明你可以去Github查看.下载项目源码 ...

  7. paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结

    paip.web数据绑定 下拉框的api设计 选择框 uapi  python .net java swing jsf总结 ====总结: 数据绑定下拉框,Uapi 1.最好的是默认绑定..Map(k ...

  8. 对于隐藏性质的非标准的动态 id 的下拉框,如何定位和选中

    今天,在页面上碰到一个非 select 标签的下拉框,打算进行定位和模拟选中. <input aria-invalid="false" autocomplete=" ...

  9. Selenium2+python自动化15-select下拉框

    前言 最近由于工作原因,更新慢了一点,今天终于抽出一点时间给大家继续更新selenium系列,学习的脚本不能停止,希望小伙伴能多多支持. 本篇以百度设置下拉选项框为案例,详细介绍select下拉框相关 ...

  10. python webdriver中对不同下拉框通过文本值的选择

    在自动化中python对下拉框的处理网上相对实例比较少,其它前辈写的教程中对下拉也仅仅是相对与教程来说的,比如下面: m=driver.find_element_by_id("Shippin ...

随机推荐

  1. 『手撕Vue-CLI』下载指定模板

    开篇 经上篇文章的介绍,实现了获取下载目录地址,接下来实现下载指定模板的功能. 背景 通过很多章节过后,已经可以拿到模板名称,模板版本号,下载目录地址,这些信息都是为了下载指定模板做准备的. 实现 如 ...

  2. 基于WebSocket的modbus通信(三)- websocket和串口

    WebSocket传递ModbusTCP数据包 错误纠正 上一篇还有个错误,就是客户端写数据时服务端不需要响应,但我的服务端响应了的.我选择改客户端,把写数据时接收到的响应丢弃. PrintBytes ...

  3. swap文件修复

    修复swap文件 vim -r /aaaa.swap

  4. WPS相关技巧

    1 标题自动编号 首先,新建一个空白word,打开.点击默认的标题样式,可以看到并不会自动编号. 接下来,就设置如何自动编号.首先选择"编号". 然后,选择"多级编号&q ...

  5. 关于 Linux 中模拟鼠标

    问题的背景是我想用自动化脚本来玩 Stardew Valley 的小游戏,刷钱,但是遇到了一系列问题,这里记录我的一些历程. pyautogui/pydirectinput pyautogui 是我第 ...

  6. 不好分类的好题Record

    这里装的是一些不太好分类的. problem 1 给你 \(n\) 个序列,第 \(i\) 个序列的长度为 \(m_i\),要求在每个序列中选择一个数,每种选法的代价为选择的 \(n\) 个数之和,请 ...

  7. .net core (.net6) 读取配置文件 appsettings.json

    .net core (.net6) 读取配置文件 appsettings.json 新建个工具类,方便其它地方使用,代码如下 AppHelper: namespace net6mvc.Utils { ...

  8. flutter 结合 springBoot 完成登录 注册 功能

    后端接口 前端调用接口代码 import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import '../page ...

  9. 从 Modbus 到 Web 数据可视化之 WebSocket 实时消息

    前言 工业物联网是一个范围很大的概念,本文从数据可视化的角度介绍了一个最小化的工业物联网平台,从 Modbus 数据采集到前端数据可视化呈现的基本实现思路.这里面主要涉及基于 Modbus 通讯规约的 ...

  10. 第一篇Scrum冲刺博客--原班人马打造队

    0 项目地址 点此进入 1 第一次开会/任务认领 1.1 第一次例会(2024.4.27) 第一次开会照片记录 1.2 开发认领 在查看老师在实验报告中学长的博客给了我一定的启发,我在腾讯表格中创建了 ...