如果没有结果 ul 被隐藏,我如何等待 <ul> 元素因输入搜索而改变?
How do I wait for a <ul> element to change because of an input search, given that if there are no results the ul is hidden?
如何等待 < ul > 元素因 < input > 搜索而发生变化,如果有没有结果 < ul > 被隐藏了?
- 我尝试了 implicitWait 和 pageLoad 方法,但在这种情况下这些方法不起作用,因为我需要的是一个元素具体等待(页面及其元素已经加载)。
- 此外,等待特定的
<ul>
元素出现也没有用,因为在我输入搜索之前它已经存在。
- 我也不能使用结果
<li>
元素作为标准来验证搜索,主要有两个原因:这是我在下一步测试中验证的内容;如果该搜索没有结果,javascript 隐藏 <ul>
。
我需要的是某种等待 <ul>
到 refresh/change 的方法,但我不确定它是否存在,甚至是否有意义。
提前致谢!
这两种状态都有预期的条件。
对于案例元素刷新你可以使用。
wait.until(ExpectedConditions.stalenessOf(element));
对于更改的元素属性,您可以使用
wait.until(ExpectedConditions.attributeContains(element, attribute, expectedValue));
我在发布后不久就解决了这个问题,但我只是记得稍后给出答案,以供感兴趣的人使用。在加载搜索(ul)时出现了一个元素(一个微调器),通过使用开发工具冻结页面,我设法找到了那个微调器元素。然后我只需要使用 SeleniumExtras.WaitHelpers.ExpectedConditions 等待它消失。无论如何感谢您的帮助!
如何等待 < ul > 元素因 < input > 搜索而发生变化,如果有没有结果 < ul > 被隐藏了?
- 我尝试了 implicitWait 和 pageLoad 方法,但在这种情况下这些方法不起作用,因为我需要的是一个元素具体等待(页面及其元素已经加载)。
- 此外,等待特定的
<ul>
元素出现也没有用,因为在我输入搜索之前它已经存在。 - 我也不能使用结果
<li>
元素作为标准来验证搜索,主要有两个原因:这是我在下一步测试中验证的内容;如果该搜索没有结果,javascript 隐藏<ul>
。
我需要的是某种等待 <ul>
到 refresh/change 的方法,但我不确定它是否存在,甚至是否有意义。
提前致谢!
这两种状态都有预期的条件。
对于案例元素刷新你可以使用。
wait.until(ExpectedConditions.stalenessOf(element));
对于更改的元素属性,您可以使用
wait.until(ExpectedConditions.attributeContains(element, attribute, expectedValue));
我在发布后不久就解决了这个问题,但我只是记得稍后给出答案,以供感兴趣的人使用。在加载搜索(ul)时出现了一个元素(一个微调器),通过使用开发工具冻结页面,我设法找到了那个微调器元素。然后我只需要使用 SeleniumExtras.WaitHelpers.ExpectedConditions 等待它消失。无论如何感谢您的帮助!