我需要帮助在selenium Java中找到一个web元素

时间:2014-04-22 18:49:24

标签: java html css selenium xpath

这是HTML:

<input id="ember354" class="ember-view ember-text-field search" placeholder="Ask me anything!" type="text">

从body-div-div-input

到达
  • 由于有超过1个输入标记
  • ,我无法按标记找到元素
  • 由于它是动态的,我无法通过id找到元素
  • 由于复合类名称
  • ,我无法按类找到元素
  • 我尝试了很多不同的CSS选择器但没有成功
  • 我尝试了许多不同的XPATH线路但没有成功

此代码的不同变体用输入替换*并使用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"));

我想也许可以通过占位符进行搜索,因为那是静态的,这是一个好主意,但我不知道如何去做。

2 个答案:

答案 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!']";