我在操作cke编辑器时遇到问题。
请找到cke编辑器的图片:
image of CKE editor (click here)
我可以切换到编辑器并输入文本,但是当我尝试单击“确定”按钮时出现错误。
以下是我的代码:
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("iframe.cke_wysiwyg_frame.cke_reset")));
WebElement body = wait.until(ExpectedConditions.visibilityOfElementLocated(By.tagName("body")));
body.sendKeys("Adding dummy product");
driver.switchTo().defaultContent();
WebElement element4 = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//img[@alt='Ok']")));
element4.click();
以下是Ok按钮的HTML代码:
<a onclick="
try {valueSelectors['tile389'].submit(); }catch (e) {}; return false;"
id="tile392_0"
actionName="SET"
href="#" class="" ><img src="theme/configuratorSiemens/images/btn/btnSet.png" alt="Ok" title="Ok" />
</a>
请找到错误消息:
Exception in thread "main" org.openqa.selenium.TimeoutException: Expected
condition failed: waiting for element to be clickable: By.xpath:
//img[@alt='Ok'] (tried for 20 second(s) with 500 MILLISECONDS interval)
at
org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:80)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:232)
at Initiate.CameleonStart.manualPositin(CameleonStart.java:1002)
at Initiate.ExecutionFlow.TestCases(ExecutionFlow.java:31)
at Initiate.MainClass.main(MainClass.java:52)
Caused by: org.openqa.selenium.NoSuchElementException: Cannot locate an element using By.xpath: //img[@alt='Ok']
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'P3B-BQHT7R1', ip: '10.222.132.78', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111'
Driver info: driver.version: unknown
任何人都可以告诉我这样做的正确方法。
如果需要更多HTML,请告诉我。
请在下面找到CKE编辑器的HTML
谢谢。
答案 0 :(得分:1)
以上问题通过beow代码解决:
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("iframe.cke_wysiwyg_frame.cke_reset")));
WebElement body = wait.until(ExpectedConditions.visibilityOfElementLocated(By.tagName("body")));
body.sendKeys(TestData.get("manPostn_desc"));
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
Thread.sleep(2000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
谢谢。