java - driver.findElement() 带有 iframe 和没有 ID 的元素

标签 java xpath selenium webdriver

Java 代码:

driver.switchTo().frame(0);
                WebElement elemText = driver.findElement(By.xpath("/html/body[contains(@class='forum')]"));
                //WebElement elemText = driver.findElement(By.xpath("//td[@id='cke_contents_vB_Editor_001_editor']/textarea"));
                elemText.sendKeys(message);
                elemText.submit();
                forumLink =  driver.getCurrentUrl();

HTML 代码:

<td id="cke_contents_vB_Editor_001_editor" class="cke_contents" style="height:1726px" role="presentation">
<iframe style="width:100%;height:100%" frameborder="0" title="Rich text editor, vB_Editor_001_editor, press ALT 0 for help." src="" tabindex="-1" allowtransparency="true">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html dir="ltr" lang="en" contenteditable="true">
<head>
<title data-cke-title="Rich text editor, vB_Editor_001_editor, press ALT 0 for help.">Rich text editor, vB_Editor_001_editor, press ALT 0 for help.</title>
<base href="http://fairplay.garena.com/" data-cke-temp="1">
<link type="text/css" rel="stylesheet" href="http://fairplay.garena.com/clientscript/vbulletin_css/style00008l/editor_contents.css">

<style type="text/css" data-cke-temp="1">
form{border: 1px dotted #FF0000;padding: 2px;}

img.cke_hidden{background-image: url(http://fairplay.garena.com/clientscript/ckeditor/plugins/forms/images/hiddenfield.gif?t=B37D54V);background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 16px !important;height: 16px !important;}
img.cke_iframe{background-image: url(http://fairplay.garena.com/clientscript/ckeditor/plugins/iframe/images/placeholder.png?t=B37D54V);background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}
img.cke_anchor{background-image: url(http://fairplay.garena.com/clientscript/ckeplugins/vblink/images/anchor.gif?t=B37D54V);background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 18px !important;height: 18px !important;}
a.cke_anchor{background-image: url(http://fairplay.garena.com/clientscript/ckeplugins/vblink/images/anchor.gif?t=B37D54V);background-position: left center;background-repeat: no-repeat;border: 1px solid #a9a9a9;padding-left: 18px;}
</style>
</head>
<body class="forum" spellcheck="true">
</body>
</html>
</iframe>
</td>

图片:http://s9.postimage.org/nwyvq3san/Screen_Shot038.jpg

我找不到在 iframe 内获取没有 id 的元素的方法。

你能帮我吗?

最佳答案

driver.switchTo().frame(driver.findElementByXpath("//iframe"));
WebElement elemText = driver.findElement(By.xpath("//body[@class='forum')]"));

应该可以。

关于java - driver.findElement() 带有 iframe 和没有 ID 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638255/

相关文章:

java - Selenium 中的 XPath 定位器

Java\n 行分隔符不起作用

java - linux 上的库的 java 文件夹在哪里

java - 如何使用 Google Map v2 在 Android 中根据纬度、经度在 map 中显示用户输入的位置?

java - Slick2D:在游戏循环之前初始化图形对象

r - 使用 Rselenium 在下拉框中选择选项

javascript - Selenium IDE - 如何创建与今天日期相关的 JavaScript 函数?

c# - 调用 format-number XPath 函数时,收到错误 : "Namespace Manager or XsltContext needed."

java - xPath 适用于最后一页,但不适用于第一页 - Selenium Java

java - Selenium - 使用通配符从下拉列表中选择一个选项?