【问题标题】:Unable to use sendKeys() method into the paragraph tag from Selenium WebDriver无法在 Selenium WebDriver 的段落标签中使用 sendKeys() 方法
【发布时间】:2016-01-26 13:26:08
【问题描述】:

这是我要编辑的页面的图片:

这是 HTML:

<div id="taTextElement7190829193028565" class="ng-pristine ng-untouched ng-valid ta-bind" contenteditable="true" ta-bind="ta-bind" ng-model="html">
<h3>Problem Scenario</h3>
<p>ff-224</p>
<h3>Diagnostics</h3>
<p>
<h3>Resolution Steps</h3>
<p>
</div>

现在,我使用sendKeys() 函数将值传递到段落标签中。

String PS_XPath = "//div[contains(@class, 'ng-pristine ng-untouched ng-valid ta-bind')]/p[2]";
WebElement element=driver.findElement(By.xpath(PS_XPath));
element.click();
element.sendKeys("Test");

sendKeys() 功能不起作用。

【问题讨论】:

  • 你有什么错误吗?还是继续什么都不做?
  • 就是什么都没做。
  • 请帮助任何人。
  • 你想如何向&lt;p&gt;元素发送文本?
  • 您可以使用sendKeys 方法在输入字段中输入值,据我所知,该字段标有&lt;input&gt; 标签或&lt;textarea&gt;...

标签: java html selenium selenium-webdriver


【解决方案1】:

这不能仅通过使用普通的 webdriver 方法来完成。但是你可以使用 JavascriptExecutor 来做到这一点。 这应该有效:

JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript("document.getElementsByTagName('p')[2].innerHTML = 'Sample text'");

地点:

[2] - 所需标签的索引。

示例文本 - 替换为 您的 文本。

【讨论】:

  • 你好@Reuven Volnoboy,我已经按照你的建议做了,但问题仍然没有解决。这是我正在使用的代码。 String PS_XPath = "//div[contains(@class, 'ng-pristine ng-untouched ng-valid ta-bind')]/p[2]"; WebElement 元素=driver.findElement(By.xpath(PS_XPath));元素.click();线程.sleep(1000); JavascriptExecutor js = (JavascriptExecutor)驱动程序; js.executeScript("document.getElementsByTagName('p')[2].innerHTML = '测试值'");
  • 什么都没发生?看,这两行与您的 Xpath 或您之前所做的任何操作无关。如果您知道如何在浏览器(例如 chrome)中调试 javascript,请尝试执行此行:“document.getElementsByTagName('p')[2].innerHTML = 'Test Value'” 可能只是您需要更改 标签,因为你没有向我们展示所有的 html 代码。我创建的页面与您向我们展示的完全一样,并在 chrome 中进行了调试,一切正常。
猜你喜欢
  • 1970-01-01
  • 2012-09-07
  • 2017-03-17
  • 2012-10-15
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 2015-03-13
  • 1970-01-01
相关资源
最近更新 更多