xpath定位不包含某种属性的元素

今天定位一个页面中的input文本框,发现竟然有两个几乎一模一样的html代码的input文本框。

唯一不同的是,一图中的input有一个comps="[object Object],[object Object]"的属性和属性值,二图则没有。我要定位的是二图中的input,并且输入内容。

代码如下:

复制代码
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
import random


phone_input = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, '//*[@id="mobilePhone" and not(@comps)]')))
time.sleep(random.randint(1, 3))        # 随机等待一到三秒
phone_input.send_keys("6466589337")
time.sleep(2)

not(@comps)即代表定位不包含叫做comps属性的元素。

还可以用and或者or来指定多个属性值。

复制代码
//tr[not(@id) and not(@class)]
或者
//tr[not(@id) or not(@class)]
相关推荐
Crystal3283 小时前
background属性经典应用(视觉差效果/绘制纸张/绘制棋盘)
前端·css
有点笨的蛋4 小时前
彻底读懂移动端视口模型:<meta viewport> 的标准机制、历史遗留与工程真相
前端·html
前端开发爱好者4 小时前
“最新国产代码大杀器”——MiniMax-M2!
前端·javascript
谷无姜4 小时前
JS必须过的槛--原型链,看完直接懂了!!
javascript
JohnYan4 小时前
Bun技术评估 - 26 Abort
javascript·后端·bun
小马哥编程4 小时前
【软考架构】案例分析-web应用设计:SSH 和 SSM(Spring + Spring MVC + MyBatis ) 之间的区别,以及使用场景
前端·架构·ssh
用户103113311664 小时前
Vuex学习记录
前端
inBuilder低代码平台4 小时前
Electron应用优化与性能调优策略
javascript·性能优化·electron
前端开发爱好者4 小时前
Electron 淘汰!新的跨端框架来了!性能飙升!
前端·javascript
狮子座的男孩4 小时前
js基础:08、构造函数(共享方法)、原型(prototype)、原型对象、(修改原型)toString方法、垃圾回收
前端·javascript·经验分享·prototype·垃圾回收·构造函数·原型对象