java - 如何在selenium中找到特定Web元素中的直接Web元素?

标签 java selenium

下面是我的html代码:

<div class="abc">
  <ul class="a">
    <li></li>
    <ul class="b">
  <ul class="c">
<div class="abcd">
  <ul class="d">
    <li></li>

我想找到第一个ul元素

css locator would be = div.abc > ul

但我想使用下面的代码找到这个元素:

final String firstUlElement = ">ul";

@FindBy(css = ".div.abc")
WebElement divElement;

List<WebElement> firstUlElement = this.divElement.findElements(By.cssSelector(firstUlElement));

但它抛出以下错误:

The given selector >ul> is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: An invalid or illegal selector was specified
Command duration or timeout: 7 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/invalid_selector_exception.html
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40'
System info: host: 'PratikPat-w7', ip: '192.168.56.1', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_71'
*** Element info: {Using=css selector, value=>ul}
Session ID: ba99cd84-0640-4af7-870a-50d79d893332
Driver info: org.openqa.selenium.firefox.FirefoxDriver

那么如何使用上面的代码定位 div.abc 之后的第一个直接元素? 提前致谢

最佳答案

WebElement 上使用 findElements() 时,无需添加 >。如果您进行此更改,它应该会起作用。

final String firstUlElement = "ul";

注意:您正在使用findElements()。这将产生一个元素列表,而不仅仅是第一个 ul。您不是想使用 findElement() 吗?

关于java - 如何在selenium中找到特定Web元素中的直接Web元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37857770/

相关文章:

java - 如何将 sleep 添加到我的 Retry TestNG 方法中?

java - android中随机 fragment 的问题

java - 底部的操作栏选项卡?

java - 致命异常: main cocos2Dx android app

java - Selenium Select 对象的 selectByIndex 方法检查索引属性而不是计数。为什么?

android - 如何使用 Sauce Labs 上的 Selenium Automation-Android 模拟器在文本框中输入值

java - Setter 返回这个 vs builder

java - 如何使用stream#sorted()按Java 8中两个字段的乘积进行排序

python - Selenium 和 Chrome - sendkeys 不起作用

java - 如何使用java将不同的文件路径传递给一个autoit脚本