gpt4 book ai didi

javascript - 在 WebDriver 中使用 sendKeys 时处理 Javascript 焦点

转载 作者:行者123 更新时间:2023-11-28 09:56:54 27 4
gpt4 key购买 nike

Web 应用程序使用 Javascript 来集中加载文本字段是很常见的。例如,在登录页面中,我们可以使用 Javascript 将焦点集中到用户名字段。

当将 WebDriver 与 FirefoxDriver 一起使用时,我使用 sendKeys 来填充这些字段。然而,大多数时候,Javascript 焦点函数将在 WebDriver 发送实际字符时执行,因此我对另一个字段(例如密码字段)的输入是部分的,其余部分将转到焦点字段.

我该如何处理这种情况?据我所知,阻塞 API 在页面内容加载时返回,而不是在 Javascript 执行完成时返回,因此这种情况是可以理解的。但是,我不认为使用“等待”是一个不错的解决方案,因为它意味着对测试开发的过多干扰。

最佳答案

我提出了三种可能的解决方案,但实际上没有一个能够保证有效:

  1. JavaScript 的 document.readyState 是否返回 “complete”?如果没有,您可以在每次 click() 之后等待。
  2. 您可以等到driver.switchTo().activeElement();(返回事件元素)返回您的文本字段,然后开始输入。我想您也应该随后调用 driver.switchTo().defaultContent(); ,但我不确定。类似的方法是获取 document.activeElement
  3. 嗯,这也有点古怪。编写您自己的 sendKeys 方法,该方法找到该元素,记住它,然后一次发送所需字符串中的一个键。因为 WebDriver 确保将注意力集中在输入的开头,所以它应该可以工作。

关于javascript - 在 WebDriver 中使用 sendKeys 时处理 Javascript 焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9853237/

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