2013-10-29 53 views
-1

我已阅读所有在这里和谷歌有关的帖子,没有帮助我与我的问题, 即时通讯尝试阅读与硒元素从网站,我基本上需要列表中的所有李子。selenium - 无法接收ul元素下的li元素

代码我在Java中写道:

List<WebElement> elements = driver.findElements(ByTagName.tagName("form")); 
    element1 = elements.get(0).findElement(ByTagName.tagName("iframe")); 
    driver.switchTo().frame(element1); 
    element2 = driver.findElement(By.xpath("//div[@id='Scroller']//ul")); 
    childs = element2.findElements(ByTagName.tagName("div")); 

    driver.close(); 

和孩子的返回值是空的某些原因。 任何人都可以帮助我吗? 我试过xpath,css选择器和标记名,没有什么帮助。

+1

我们可以看到HTML吗? –

+0

除非我们看到html,否则不可能;但是,尝试将“ByTagName.tagName”替换为“By.tagName”。 –

+0

确保你进入iframe –

回答

0

我好不容易才看到你的HTML图片:

http://i.stack.imgur.com/mvVzW.png

稍尖,只是复制/粘贴HTML到你的问题,那效果要好得多,你不需要任何的口碑为了它。

无论如何,如果你正在做的是试图抓住div“下的每个li S,你可以做到这一点使用CSS选择器:

div#Scroller > ul > li > div 

如果没有,告诉我们什么div的你的意思是得到。

+0

感谢,不幸的是,它返回NoSuchElementException异常: 2013年10月30日下午12点14分39秒com.gargoylesoftware.htmlunit.html.InputElementFactory createElementNS 信息:错误的输入类型:“电子邮件”,创建一个文本输入线程 异常“main”org.openqa.selenium.NoSuchElementException:返回的节点不是HTML元素 有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html 构建信息:版本:'2.37。 0',修改:'a7c61cb',时间:'2013-10-18 17:15:02' – Er85

+0

这是很奇怪的,因为它足够清晰,下面有ul元素.. – Er85

+0

@ Er85,可否请您张贴满HTML?我也注意到你正在使用HTMLUnit驱动程序。这很好,但我想知道它是否实际上正确地“看到”元素。你能否使用像ChromeDriver这样的东西来看看它是否有所作为? – Arran

0

你可以在循环中尝试读取所有的li项目作为数组。

//div[@id="Scroller"]/ul[0]/li 



//div[@id="Scroller"]/ul[0]/li[1] 
+0

不能正常工作,它会抛出异常:线程“main”中的异常org.openqa.selenium.NoSuchElementException:无法使用// div [@ id ='Scroller']/ul [0]/li找到节点[1] 有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html – Er85

+0

Er85, 您将需要发布html的确切内容以供任何人帮助您。 – tree

+0

我不能这样做,因为这个页面需要登录我的工作密码和用户名,但问题已经解决了,非常感谢您的帮助。 – Er85