当前位置: 首页 > 知识库问答 >
问题:

Selenium WebDrive sendKeys在IE11 32位中输入值,但随后将其删除

周弘盛
2023-03-14

在java的selenium测试中,我必须在输入框中输入文本。我使用下面的代码来实现这一点,它输入字符,然后删除:

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

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

((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个答案

易淳
2023-03-14

我建议尝试使用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");
     }

输出:

此外,您可以根据自己的需求修改代码。

闻人修明
2023-03-14

要使用Selenium WebDriver将字符序列发送到FROM和To字段,您不必求助于JavascriptExecutor的executeScript()方法。相反,您可以使用经过大量验证且高效的sendKeys()方法为ElementToBickable()导入WebDriverWait,并且可以使用以下任一定位器策略:

>

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");

浏览器快照:

 类似资料:
  • 问题内容: 我连续有3个文本框,并且正在使用JS在文本框中输入文本。但是问题是当我在一个字段中输入文本,然后转到第二个框中输入文本时,第一个文本框中的值将被删除。我们正在使用下面的代码输入文本 问题答案: 尝试以下方法: 确保在按下第二个和第三个之前实现。

  • 我正在编写一个java程序来获取输入的数字的最大值、最小值和总数。如果输入为(-1),我想终止,但在编程中,我编写了它,将-1指定为最小值。我应该怎么做才能避免它? } 输出学生人数:3总分:60最高分:30最低分:0平均分:20.0 有人能帮我修一下吗? 谢谢你的时间。

  • 大家好,所以我有这个MYSQl代码,我插入日期,当它发送和输入的日子,可以是从1做7。我怎样才能让MYSQl在输入天之后删除一行?例如:我在2021年22.03.2021下午3:54创建了一个产品,输入的过期天数是6天。我想删除产品后正好6天。

  • public void drop(字符串名称)--如果合适,从ArrayList中移除该项,并将其添加到当前房间。使用以下选项之一更新游戏的消息:1)玩家没有持有该项目,2)房间已经有一个项目,或者3)玩家已经成功地将该项目放入房间。这是此方法的目标,但当我运行它时,它总是跳到else语句中的currentMessage。 问题:我遇到的问题是,当我运行这个方法并试图将一个项目放到房间中时,它没有

  • 我试图在vuejs中的输入字段中显示2000.00,但它剥离了.00。 如何使输入字段显示2000.00? jsfiddle 我可以使用计算属性来做到这一点。但是我需要将其应用于多个输入字段。 解决方案:

  • 问题内容: 我有以下代码: 控制台输出看起来像 我想在用户按下后删除文本。退格键无法做到。 问题答案: 这将在大多数unix和Windows终端中正常工作…它使用非常简单的ANSI转义。 请注意,在Windows上,您可能需要使用以下http://www.windowsnetworking.com/kbase/windowstips/windows2000/usertips/miscellaneo