Can';t单击树视图中的元素-Selenium webdriver java

Can';t单击树视图中的元素-Selenium webdriver java,java,selenium,selenium-webdriver,treeview,Java,Selenium,Selenium Webdriver,Treeview,我试图通过点击一个树状视图来访问一个元素。我可以点击第一级“设备”,但我必须进入下一级 这是浏览器窗口中的屏幕截图 下面是HTML代码的简化版本 iphone5s iphone6 尝试以下不带id的代码: List<WebElement> icons = driver.findElements(By.xpath("//i[@class='jstree-icon jstree-ocl'")); for (WebElement e : icons) { e.

我试图通过点击一个树状视图来访问一个元素。我可以点击第一级“设备”,但我必须进入下一级

这是浏览器窗口中的屏幕截图

下面是HTML代码的简化版本

    • iphone5s
    • iphone6

尝试以下不带id的代码:

List<WebElement> icons = driver.findElements(By.xpath("//i[@class='jstree-icon jstree-ocl'"));
for (WebElement e : icons) {
 e.click(); // click each
}     
List icons=driver.findElements(By.xpath(“//i[@class='jstree-icon-jstree-ocl'));
用于(WebElement e:图标){
e、 单击();//单击每个
}     
在“for”中,您可以
webElement.getAttribute
getCssValue
生成以下元素定位器


希望它能帮上忙,你能试试这个xpath吗

"//a[contains(text(),'HANDSET')]/parent::li/i"

希望这有帮助。谢谢。

你能试试这个xpath吗?“//a[contains(text(),'iphone6')”谢谢你的回答。不幸的是,这不起作用,因为我无法单击文本,我需要单击文本旁边的图标才能向下一级。顺便说一句,要想进入iPhone 6,我需要单击手机->苹果-iPhone 6。要单击耳机下拉列表(一种),请使用以下命令:“//a[contains(text(),'HANDSET')]/parent::a”…,只需将手持设备替换为适当的可见项即可。我得到的错误是没有这样的元素:在运行“//a[contains(text(),'HANDSET')]/parent::a时无法找到元素):-(您能检查一下吗?”//a[contains(text(),'HANDSET')]/parent::li/a”谢谢你的回答@V.Rob。不幸的是,我不能使用这些ID j1_3、j1_6、j1_15等。原因是它们可以在树视图中添加新元素后立即更改。请查看我问题的最后几行。是否有办法使用测试手机、苹果和iPhone 6访问图标?感谢发送更新的代码。我得到以下信息更新代码的第一行出现错误。“org.openqa.selenium.InvalidSelectorException”:选择器无效:无法找到xpath表达式为//i[@class='jstree-icon-jstree-ocl'的元素,原因是以下错误:语法错误:未能对“文档”执行“评估”:字符串//*[@class='jstree-icon-jstree-ocl'不是有效的XPath表达式。'还有其他方法吗?driver.findElements(By.XPath(“//li[@*]/i[@class='jstree-icon-jstree-ocl']))