尝试使用文本字段的 webdriver sendkeys() 函数发送/设置文本
这是 HTML
<table class="gridtable" cellspacing="0" __gwtcellbasedwidgetimpldispatchingfocus="true" gwtcellbasedwidgetimpldispatchingblur="true" style="width: 100%;">
<thead>
<colgroup>
<tbody style="">
<tr class="GORM0XEDKD GORM0XEDME" onclick="">
<td class="GORM0XEDJD GORM0XEDLD GORM0XEDMD GORM0XEDNE">
<td class="GORM0XEDJD GORM0XEDLD GORM0XEDNE GORM0XEDGE">
<div style="outline:none;" tabindex="0"></div>
</td>
</tr>
</tbody>
<tbody style="display: none;">
<tfoot style="display: none;">
</table>
Xpath for the text field -
EmailTemplateEditorTemplateName= By.xpath("//*[contains(@class,'GORM0XEDJD GORM0XEDLD GORM0XEDNE GORM0XEDGE')]/div[1]");
尝试了以下选项。但所有这些都无法将文本发送到 EmailTemplateEditorTemplateName 文本字段
1. driver.findElement(DesignerLocators.EmailTemplateEditorTemplateName).sendKeys("yahooo"); 2. this.WaitForElement(DesignerLocators.EmailTemplateEditorTemplateName); WebElement tempname = driver.findElement(DesignerLocators.EmailTemplateEditorTemplateName); JavascriptExecutor rightexecutor = (JavascriptExecutor)driver; rightexecutor.executeScript("arguments[0].setAttribute('value','yahoo')", tempname); 3. WebElement Element=driver.findElement(DesignerLocators.EmailTemplateEditorTemplateName); Actions builder = new Actions(driver); builder.moveToElement(Element).sendKeys("yahoo").build().perform(); 4. WebElement Element=driver.findElement(DesignerLocators.EmailTemplateEditorTemplateName); Actions builder = new Actions(driver); builder.moveToElement(Element).click().sendKeys("yahoo").build().perform(); 5. WebElement Element=driver.findElement(DesignerLocators.EmailTemplateEditorTemplateName); Actions builder = new Actions(driver); builder.moveToElement(Element).click(Element).sendKeys("yahoo").build().perform();
click() 正在运行。
- 有趣的是,getText() 使用相同的 xpath 处理相同的文本字段。 String val=driver.findElement(DesignerLocators.EmailTemplateEditorTemplateName).getText();
- 只有 sendKeys() 不起作用。并且不会抛出任何错误。
- 请帮助我在文本字段中设置/发送文本。
最佳答案
你尝试过这个吗:
既然你说 Click 有效,
driver.findElement(DesignerLocators.EmailTemplateEditorTemplateName).click();
driver.switchTo().activeElement().sendKeys("Text");
或尝试使用构建器单击和 activeElement 如下
builder.moveToElement(Element).click();
driver.switchTo().activeElement().sendKeys("Text");
关于java - Webdriver sendkeys() 不起作用。使用 javascript 也失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26958449/