Как использовать Javascriptexecutor для ввода текста в элементе, который не имеет Id в качестве локатора? - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу ввести текст в текстовое поле, которое не принимает ввод через SendKeys.Я продолжил использовать Javascriptexecutor для ввода текста и преуспел.Теперь есть несколько полей, в которых нет идентификатора, который можно выбрать в качестве локатора, поэтому мне нужно найти их с помощью Xpath.Я хотел бы знать, как мы можем найти элемент по xpath в Javascriptexecutor и передать ему значения.

JavascriptExecutor jse = (JavascriptExecutor)driver
jse.executeScript("document.getElementById('value').value='1611 
Dragons';");

Мне нужен подход, где я могу использовать его что-то вроде:

document.getElementByXpath("Xpath Here").value='xyz';");

Пожалуйста, не стесняйтесь направлять меня к Документу / ответу, если это было задокументировано где-то ранее.

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Для ввода текста в текстовом поле , указанном с помощью xpath , вы можете использовать следующие обозначения:

(JavascriptExecutor) driver.executeScript("document.evaluate(xpathExpresion, document, null, 9, null).singleNodeValue.innerHTML="+ DesiredText);
0 голосов
/ 13 февраля 2019

Попробуйте следующий код, это решит вашу проблему:

 WebElement element = driver.findElement(By.xpath("enter the xpath here"));
 JavascriptExecutor jse = (JavascriptExecutor)driver;
 jse.executeScript("arguments[0].value='enter the value here';", element);
0 голосов
/ 13 февраля 2019

Посмотрите на document.evaluate.https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate

var xpathResult = document.evaluate(
  xpathExpression,
  contextNode,
  namespaceResolver,
  resultType,
  result
);
...