Selenium Webdriver sendKeys вводит значения в 32-битном IE11, но затем удаляет их - PullRequest
1 голос
/ 19 июня 2020

Мне нужно ввести текст в поле ввода в тесте на селен в java. Я использую для этого код ниже, и он вводит символы, но затем удаляет их:

WebElement depart=webControls.getDriver().findElement(By.id("oneWayFlight_fromLocation"));((JavascriptExecutor) webControls.getDriver()).executeScript("document.getElementById('oneWayFlight_fromLocation').value='JFK'");

OR

((JavascriptExecutor) webControls.getDriver()).executeScript("arguments[0].value='JFK';",depart);

OR

((JavascriptExecutor) webControls.getDriver()).executeScript(String.format("document.getElementById('oneWayFlight_fromLocation').value='JFK';","JFK"));

Вот текстовое поле:

<input id="oneWayFlight_fromLocation" type="text" class="InputText-control hasError hasIcon" name="oneWayFlight_fromLocation" placeholder="From" autocomplete="off" value="">

Следующие настройки:

  1. Windows 10 64 бит
  2. IE11 32 бит
  3. IE DriverServer 32-битный
  4. Режим защиты отключен для всех
  5. nativeEvents false
  6. REQUIRE_WINDOW_FOCUS истинно
  7. 64-битный процесс не отмечен в Advanced Security

enter image description here

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Чтобы отправить последовательность символов в поле FROM и TO , используя Selenium WebDriver , вы не Приходится прибегать к методу JavascriptExecutor executeScript(). Вместо этого вы можете использовать проверенный и эффективный метод sendKeys(), вызывающий WebDriverWait для elementToBeClickable(), и вы можете использовать любую из следующих стратегий поиска :

  • cssSelector:

    WebDriver driver =  new InternetExplorerDriver();
    driver.get("https://www.amextravel.com/flight-searches");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[text()='One Way']"))).click();
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#oneWayFlight_fromLocation"))).sendKeys("JFK");
    
  • xpath:

    WebDriver driver =  new InternetExplorerDriver();
    driver.get("https://www.amextravel.com/flight-searches");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[text()='One Way']"))).click();
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='oneWayFlight_fromLocation']"))).sendKeys("JFK");
    
  • Снимок браузера:

amextravel

0 голосов
/ 19 июня 2020

Предлагаю попробовать провести тест с помощью Sendkeys (). Я пытаюсь протестировать его на своей стороне, и он работает без каких-либо проблем.

 public static void main(String[] args) {

               System.setProperty("webdriver.ie.driver","D:\\D drive backup\\selenium web drivers\\IEDriverServer.exe");  
               WebDriver browser = new InternetExplorerDriver();

               browser.get("https://www.amextravel.com/flight-searches");
               browser.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

               WebElement txtbox1=browser.findElement(By.name("oneWayFlight_fromLocation"));
               txtbox1.sendKeys("ABC");

               WebElement txtbox2 = browser.findElement(By.name("oneWayFlight_toLocation"));    
               txtbox2.sendKeys("xyz");
     }

Вывод:

enter image description here

Кроме того, вы можете изменить код для работы в соответствии с вашими требованиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...