使用Selenium通过automation-id定位元素并分别提取6和ft的值
首先明确:你提到的用+运算符处理的思路不可行,driver.find_element系列方法返回的是WebElement对象,无法直接通过运算符拼接提取文本片段,必须先获取元素完整文本后再拆分取值。
另外注意:6和ft是元素内的文本内容,不是独立的DOM元素,所以不能赋值给WebElement类型的变量,你可以直接用字符串类型接收提取结果,一行代码实现的写法如下:
Python版本(匹配你参考的Selenium + Python方案)
# 提取数值6 height_num = driver.find_element(By.CSS_SELECTOR, "[automation-id='xyz']").text.split()[3] # 提取单位ft height_unit = driver.find_element(By.CSS_SELECTOR, "[automation-id='xyz']").text.split()[4]
正则提取的稳定写法(不受前后文本内容变动影响):
import re # 提取数值6 height_num = re.search(r'\d+', driver.find_element(By.CSS_SELECTOR, "[automation-id='xyz']").text).group() # 提取单位ft height_unit = re.search(r'\d+\s+(\w+)', driver.find_element(By.CSS_SELECTOR, "[automation-id='xyz']").text).group(1)
Java版本(匹配你给出的代码语法)
// 提取数值6 String heightNum = driver.findElement(By.cssSelector("[automation-id='xyz']")).getText().trim().split(" ")[3]; // 提取单位ft String heightUnit = driver.findElement(By.cssSelector("[automation-id='xyz']")).getText().trim().split(" ")[4];
内容的提问来源于stack exchange,提问作者stuart
相关产品推荐
相关产品推荐

