java - Webdriver sendkeys() 不起作用。使用 javascript 也失败

标签 java javascript selenium xpath selenium-webdriver

尝试使用文本字段的 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/

相关文章:

java - JAXB:如何使 EntityHolder 处理 JSON 请求

java - 我如何为我的 Java 应用程序的用户前端决定是使用 Swing GUI 还是轻量级 Web 客户端?

javascript - jQuery 函数没有按照我的预期工作

javascript - 是否可以在Python中输出类似于CryptoJS.enc.Hex.parse(hash)的单词数组

Selenium WebDriver - 隐藏选择和 anchor

java - 文件未从某些 HTTP URL 下载

Javascript删除验证是 "Ok"还是 "Cancel"

internet-explorer - Selenium 2.0 WebDriver IE8 findelement by xpath 无法评估

ruby - 使用 Mechanize Nokogiri Selenium 在网站上发布数据

java - jsp中为什么下划线是红色以及如何正确迭代列表