给定一个包含一个<select>
元素和一些<option>
s 的页面,单击该页面会导致浏览器打开一个新 URL,例如(省略 JavaScript 代码):
<select>
<option value="here">go here</option>
<option value="there">go there</option>
</select>
当我使用WebDriver自动执行此行为时,我调用
hereOrThereSelectElement.SelectByValue("here");
然后它等到新页面加载完毕。
就我而言,新位置的页面加载需要 60 多秒(故意),因此我不得不增加 WebDriver 实例的命令超时。不幸的是,此超时将影响使用相同 WebDriver 实例创建的所有其他测试。
此外,我想执行显式等待新页面加载(以将其标记为在测试场景中长时间运行),但在这种情况下,将在SelectByValue
命令成功后调用下一个命令 - 因此不再需要等待。
我查看了源代码并意识到该SelectByValue
命令使用了在Click
需要时等待页面加载的逻辑。
所以我的问题是:如何在不等待新页面加载的情况下显式执行SelectByValue
(or )?Click
更新: 我的代码中真正想要的是:
// the following command should not wait for the new page to load
hereOrThereSelectElement.SelectByValueButDoNotWait("here");
webDriverWait.Until(/* some "page has loaded" check */)