You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium通过CSS选择器定位无name/id的两个文本输入框

解决Selenium定位两个文本输入框的问题

你用findElement方法只会返回第一个匹配的元素,所以只能拿到一个输入框。要定位到两个文本输入框并填充内容,推荐以下几种实用方法:

方法一:获取所有匹配元素后逐个操作

使用findElements(复数形式)获取所有符合条件的输入框元素,再通过索引分别操作:

// Java 示例代码
List<WebElement> textInputs = driver.findElements(By.cssSelector("input[type='text']"));
// 填充第一个输入框(任务名称)
textInputs.get(0).sendKeys("今日任务");
// 填充第二个输入框(任务描述)
textInputs.get(1).sendKeys("完成Selenium定位练习");

方法二:结合父容器精准定位

利用输入框所在的.col容器位置区分,写出更精准的CSS选择器:

  • 第一个输入框选择器:.row .col:first-child input[type='text']
  • 第二个输入框选择器:.row .col:nth-child(2) input[type='text']

对应代码:

// 定位并填充任务名称输入框
driver.findElement(By.cssSelector(".row .col:first-child input[type='text']")).sendKeys("整理桌面");
// 定位并填充任务描述输入框
driver.findElement(By.cssSelector(".row .col:nth-child(2) input[type='text']")).sendKeys("归类文件和杂物");

方法三:通过相邻标签关联定位

借助输入框前的label文本,用CSS相邻兄弟选择器+或者:has伪类定位(注意:has需要浏览器和Selenium版本支持):

/* 匹配任务名称对应的输入框 */
label:contains('Nom de la tâche') + input[type='text']
/* 匹配任务描述对应的输入框 */
label:contains('Description de la tâche en une ligne') + input[type='text']

如果原生Selenium不支持:contains,也可以改用XPath实现类似逻辑:

// XPath定位任务名称输入框
driver.findElement(By.xpath("//label[text()='Nom de la tâche']/following-sibling::input")).sendKeys("新任务");

内容的提问来源于stack exchange,提问作者hamza belatra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:11:05