Selenium 所有文本框都有相同的Id,我想在第二个文本框中写入一些文本

Selenium 所有文本框都有相同的Id,我想在第二个文本框中写入一些文本,selenium,Selenium,在Selenium中,我们有三个文本框。所有文本框都有相同的Id,我想在第二个文本框中写入一些文本。但是,我们不使用任何定位器,也不使用xpath,所以我们只能使用id。如何解决这个问题?您可以 use xpath //xpath-indicator-to-textbox[2] 或 您可以在xpath/css中使用索引值,如 //输入[@id='textBoxId'][1] 或者获取列表中的所有文本框,然后像Java版本一样检索第二个文本框- ListwebLocators=driver.fi

在Selenium中,我们有三个文本框。所有文本框都有相同的Id,我想在第二个文本框中写入一些文本。但是,我们不使用任何定位器,也不使用xpath,所以我们只能使用id。如何解决这个问题?

您可以

use xpath //xpath-indicator-to-textbox[2]


您可以在xpath/css中使用索引值,如

//输入[@id='textBoxId'][1]

或者获取列表中的所有文本框,然后像Java版本一样检索第二个文本框-

ListwebLocators=driver.findElementsBy.id'textBoxId'

WebLocator[1].sendKeysxyz


据我所知,具有相同ID的不同元素甚至不是有效的HTML。由于ID是元素的标识符,因此它必须是唯一的。

您可以发布您的url..或html代码吗?您应该提供更多详细信息:目标html的一部分、您使用的编程语言、您已经尝试过的内容。。。还有,你说我们不用定位器是什么意思?By.Id是一个定位器,如果所有文本框的Id都相同,则使用其他标识符,如xpath,css\u选择器或类名等。发布您的html代码。\n好的,但我想只使用id。有很多选项可以这样做,我们也可以使用xpath,但我只想使用id。id是否可能?我怎么做?我不想使用xpath和任何定位器。我只想使用By.Id。这个Xpath并没有真正做到您认为它正在做的事情//input[@id='textBoxId'][1]将查找id等于textBoxId且是第一个子元素的输入元素的所有实例。如果您试图查找//输入[@id='textBoxId'][2],很可能找不到任何内容。我想你的意思是//输入[@id='textBoxId'][1]。这将查找id为且等于textBoxId的输入元素的所有实例,并返回找到的第一个实例。
 getelements --> then sendkey to elements[1] (2nd element in array)