这是HTML:
<input id="ember354" class="ember-view ember-text-field search" placeholder="Ask me anything!" type="text">
从body-div-div-input
到达此代码的不同变体用输入替换*并使用contains&amp;启动功能是没有用的:
WebElement ele = driver.findElement(By.xpath("//*[@class='ember-view ember-text-field search']"));
使用了不同的CSS选择器,包括contains和其他函数都没有成功
WebElement ele = driver.findElement(By.cssSelector("ember-view.ember-text-field.search"));
我想也许可以通过占位符进行搜索,因为那是静态的,这是一个好主意,但我不知道如何去做。
答案 0 :(得分:4)
您可以尝试按占位符
查找元素driver.findElement(By.xpath("//input[@placeholder='Ask me anything!']"))
答案 1 :(得分:0)
你使用css选择器犯了错误。
我认为您在使用css选择器时忘记将 .
放在类名前面。
正确的css定位器为.ember-view.ember-text-field.search
所以你的最终代码如下:
String cssLocator = ".ember-view.ember-text-field.search";
WebElement ele= driver.findElement(By.cssSelector(cssLocator));
或者如果您想使其更具体,那么您可以使用:
String cssLocator = ".ember-view[placeholder='Ask me anything!']";
也