gpt4 book ai didi

Selenium - 如何等待?

转载 作者:行者123 更新时间:2023-12-01 11:20:20 26 4
gpt4 key购买 nike

在执行特定操作后,我需要能够等待页面上可能发生的多种事情之一。这些事情的例子是:URL 更改、设置了某个标题、页面上出现了某些内容等。

这解释了如何等待 - https://github.com/facebook/php-webdriver/wiki/HowTo-Wait .但是,我需要能够同时等待多个事情。我希望在其中一种情况发生时停止等待。

在等待期间有没有办法“或”(例如,等待 URL 更改 OR 标题包含“foo” OR “bar”出现在页面上等)?

最佳答案

在您发布的同一链接中,查找“自定义条件”部分,即:

$driver->wait()->until(
function () use ($driver) {
$elements = $driver->findElements(WebDriverBy::cssSelector('li.foo'));

return count($elements) > 5;
},
'Error locating more than five elements'
);

请注意代码示例中“findElements”的使用。当什么都没有找到时,将返回一个空数组。如果三个元素中只有一个必须可见,您可以执行以下操作:
$driver->wait()->until(
function () use ($driver) {
$elements1 = $driver->findElements(WebDriverBy::cssSelector('li.foo1'));
$elements2 = $driver->findElements(WebDriverBy::cssSelector('li.foo2'));
$elements3 = $driver->findElements(WebDriverBy::cssSelector('li.foo3'));

return count($elements1) + count($elements2) + count($elements3) > 0;
},
'Error locating at least one of the elements'
);

关于 Selenium - 如何等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44605484/

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