gpt4 book ai didi

java - SendKeys 不会填充 Internet Explorer 中相应组件中的值,但在 Chrome 中却可以

转载 作者:行者123 更新时间:2023-12-01 19:53:21 25 4
gpt4 key购买 nike

我面临这样的问题,即使在 Internet Explorer 11 中给出了有效 ID,SendKeys() 也没有将值传递到正确的字段。如果我在 Chrome 66+ 浏览器中运行相同的脚本,它会按预期工作。为什么?

脚本:

// Address Line1
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_address1_text")).clear();
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_address1_text")).sendKeys(ADDRESS1);
Thread.sleep(1000)

// City
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_city_text")).clear()
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_city_text")).sendKeys(CITY_NAME)
Thread.sleep(1000)

// State
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_state_text")).clear()
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_state_text")).sendKeys(STATE_CODE)
Thread.sleep(1000)

// Postal code
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_postalCode_text")).clear()
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_postalCode_text")).sendKeys(POSTAL_CODE)
Thread.sleep(1000)

上面提到的脚本取自更新屏幕。因此,我清除现有内容并将值传递到相应的字段。

问题:这些值不匹配,即 AddressLine1 值传递到 CityPostalCode 字段接收 FirstName 值(FYI :我在脚本中没有提到)

Chrome 浏览器中执行相同的脚本时,它可以正常工作。为什么?

有人请给我解决方案吗?

已编辑:附有屏幕截图 enter image description here enter image description here

谢谢
卡鲁纳加拉·潘迪

最佳答案

这个问题很容易发生。可能是由于错误的驱动程序、错误的驱动程序版本,而且 IE 实际上是一个浏览器的灾难。您可能正确地找到了元素(如果它适用于 Chrome),但 sendKeys() 方法在 IE 上无法正常工作,它有问题,这个问题也发生在 Safari 上。

尝试其中之一,可能会有所帮助:

对于 64 位 WebDriver: 1.打开IE 2. 进入 Internet 选项 → 高级 → 安全 3. 选中 ☑ 为增强保护模式启用 64 位进程 单击 4.申请并确定

对于 32 位 WebDriver: 1.打开IE 2. 进入 Internet 选项 → 高级 → 安全 3. 取消选中“启用增强保护模式的 64 位进程” 4. 单击“应用”和“确定”

还有:

Internet 选项 -> 安全 -> 选中所有区域的“启用保护模式”转到高级 -> 安全 -> 选中“启用增强保护模式”

在代码中试试这个:

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
...
capabilities.setCapability("requireWindowFocus", true);
WebDriver driver = new InternetExplorerDriver(capabilities);

并尝试这个,但对我来说,这只适用于几个版本的 IE:

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("document.getElementById('ID').value='VALUE';");

关于java - SendKeys 不会填充 Internet Explorer 中相应组件中的值,但在 Chrome 中却可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50506486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com