присвоить значение данных в поле xpath в селене [дубликат]

В то время как обещания и обратные вызовы хорошо работают во многих ситуациях, боль в задней части выражает нечто вроде:

if (!name) {
  name = async1();
}
async2(name);

. В итоге вы пройдете через async1; проверьте, не определено ли name или нет, и соответственно вызовите обратный вызов.

async1(name, callback) {
  if (name)
    callback(name)
  else {
    doSomething(callback)
  }
}

async1(name, async2)

Хотя в в порядке хорошо , это раздражает, когда у вас много подобных случаев и обработка ошибок.

Fibers помогает в решении проблемы.

var Fiber = require('fibers')

function async1(container) {
  var current = Fiber.current
  var result
  doSomething(function(name) {
    result = name
    fiber.run()
  })
  Fiber.yield()
  return result
}

Fiber(function() {
  var name
  if (!name) {
    name = async1()
  }
  async2(name)
  // Make any number of async calls from here
}

Вы можете проверить проект здесь .

18
задан Unihedron 25 October 2014 в 15:03
поделиться

3 ответа

Используйте этот код.

driver.FindElement(By.XPath(".//[@id='header']/div/div[3]/div/form/input[1]")).SendKeys("25025");
24
ответ дан Nakilon 24 August 2018 в 01:47
поделиться

У меня был случай, когда я вводил текст в поле, после которого текст будет удален автоматически. Оказалось, что это связано с некоторыми функциональными возможностями сайта, когда вам нужно было нажать клавишу ввода после ввода текста в поле. Итак, после отправки вашего текста штрих-кода с помощью метода sendKeys отправьте «enter» непосредственно после него. Обратите внимание, что вам придется импортировать класс ключей селена. См. Мой код ниже.

import org.openqa.selenium.Keys;

String barcode="0000000047166";
WebElement element_enter = driver.findElement(By.xpath("//*[@id='div-barcode']"));
element_enter.findElement(By.xpath("your xpath")).sendKeys(barcode);

element_enter.sendKeys(Keys.RETURN); // this will result in the return key being pressed upon the text field

Надеюсь, это поможет ..

8
ответ дан CODEBLACK 24 August 2018 в 01:47
поделиться

Это может быть проверка JavaScript для некоторого действительного условия. Две вещи, которые вы можете выполнить в соответствии с вашими требованиями:

  1. либо проверьте правильность ввода строки в текстовом поле.
  2. или установите цикл в это текстовое поле, чтобы ввести значение, пока вы не опубликуете форму / запрос.
String barcode="0000000047166";

WebElement strLocator = driver.findElement(By.xpath("//*[@id='div-barcode']"));
strLocator.sendKeys(barcode);
1
ответ дан quamrana 24 August 2018 в 01:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: