我在HTML中有这个:
<textarea name="comment" class="form-control" rows="3" id="textarea_1160688690910416779_2159935466"></textarea>
我想与id = textarea_进行互动,但数字在&#34; _&#34;之后不断变化。为了解决这个问题,我使用了这段代码:
driver.findElement(By.xpath("[starts-with(@id, 'textarea')")).sendKeys(comment);
但是我收到了错误:
org.openqa.selenium.NoSuchElementException: Unable to locate element:
答案 0 :(得分:0)
使用
driver.findElement(By.xpath("//textarea[starts-with(@id,'textarea_')]")).sendKeys(comment);
答案 1 :(得分:0)
您收到此错误的原因是您需要在当前XPath之前添加“//”。 您可以使用starts-with,这样:
("//textarea[starts-with(@id, 'textarea_')]")
你也可以试试'包含':
("//textarea[contains(@id, 'textarea_')]")
在两种方式中,您可以使用// * [...而不是textarea,更多情况
答案 2 :(得分:0)
您的Xpath不是有效的Xpath。
因此,如果你的标签是textarea,如果它在顶部:使用 / textarea
如果不在顶部,请使用 // textarea
这给出:&#34; // textarea [starts-with(@id,&#39; textarea&#39;)]&#34;
要与硒一起使用,您还可以阅读:JAVA - How to use xpath in selenium