老实说,我想自己找到解决方案,但经过二十多个小时和数百个网页(和几本硒书)之后,我不得不请求你的帮助。
大问题:网络应用程序只在IE8中工作。因为某种原因而没有使用它。
我正在努力完成什么和遇到的问题:
我有一页有几张相框。其中一个框架包含一个菜单。我需要单击其中一个选项来展开它并访问子菜单的条目,然后我可以单击所需的子菜单条目。当所有这些完成后,我可以在右边的框架中访问不同的信息。我已经尝试通过linkText、image、xpath找到元素。
以下是来自IE Developer工具的结构的HTML代码:

我要翻四页才能到这里。因为这段代码不相关,所以我不会粘贴它。下面的代码显示了我如何尝试获得正确的Xpath。
List<WebElement> allXpathElem = driver.findElements(By.xpath("//frameset"));
System.out.println("XPath elements number: " + allXpathElem.size());
for(int i=0; i < allXpathElem.size(); i++)
System.out.println("XPath element " + (i+1) + ": " + allXpathElem.get(i));在玩了几次之后:
driver.switchTo().frame(driver.findElement(By.xpath("//frameset/frame[1]")));
List<WebElement> nextStepElem = driver.findElements(By.xpath("//frameset/frame[1]/div"));
System.out.println("XPath elements number: " + nextStepElem.size());
for(int i=0; i < nextStepElem.size(); i++)
System.out.println("XPath element " + (i+1) + ": " + nextStepElem.get(i));无论我在/frame之后输入了什么,https://developer.qcloudimg.com/http-save/yehe-900000/3ad73654f9c30df62aa83afcf759452a.png都返回XPath元素编号: 0。你能帮我弄清楚如何在某个条目下找到所有的XPath元素吗?例如,如何查找所有可以在框架https://developer.qcloudimg.com/http-save/yehe-900000/3ad73654f9c30df62aa83afcf759452a.png/之后运行的元素??
我的最终目标是遍历整个路径,这样我就可以单击子菜单链接(例如,客户端信函),相应的内容将显示在右侧框架中。我有比XPath更好的方法吗?

谢谢!
发布于 2015-09-24 16:26:15
你的问题是:
driver.switchTo().frame(driver.findElement(By.xpath("//frameset/frame[1]")));
List<WebElement> nextStepElem = driver.findElements(By.xpath("//frameset/frame[1]/div"));在您.switchTo()一个框架之后,您现在只查看该框架中的元素。第二行应为:
List<WebElement> nextStepElem = driver.findElements(By.xpath("//div"));
...更新:从HTML的屏幕截图(文本的注释截图是没有帮助的-始终提供文本作为文本!)似乎有两个嵌套的框架。您必须遍历所有帧才能到达元素:
driver.switchTo().frame(0); // this puts you inside frame src="english/index.htm"
driver.switchTo().frame(0); // this puts you inside frame name="menuserverFrame"
List<WebElement> nextStepElem = driver.findElements(By.xpath("//div"));https://stackoverflow.com/questions/32766251
复制相似问题