gpt4 book ai didi

java - Selenium click() 事件似乎并不总是被触发 => 导致超时?

转载 作者:IT老高 更新时间:2023-10-28 21:19:22 26 4
gpt4 key购买 nike

这是我的工作:

selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);

// do something, then navigate to a different page
// (window focus is never changed in-between)

selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);

链接“mylink”确实存在,第一次调用 click() 总是有效的。但第二次 click() 有时似乎有效,有时无效。

看起来 click() 事件根本没有触发,因为页面甚至没有开始加载。不幸的是,这种行为是不确定的。

这是我已经尝试过的:

  1. 设置更长的超时时间
    => 没有帮助

  2. 加载一页后等待元素出现
    => 也不起作用,因为页面甚至没有开始加载

现在我最终调用了 click() 两次,所以:

selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);

// do something, then navigate to a different page
// (window focus is never changed in-between)

selenium.click("link=mylink");
selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);

这会起作用,但这不是一个非常好的解决方案。我还在另一个论坛上看到有人建议写类似“clickAndWaitWithRetry”的东西:

  try {
super.click("link=mylink");
super.waitForPageToLoad(60000);
}
catch (SeleniumException e) {
super.click("link=mylink");
super.waitForPageToLoad(60000);
}

但我认为这也不是一个合适的解决方案....为什么有时不触发 click() 事件的任何想法/解释?

最佳答案

有时,Selenium 不喜欢点击某些 anchor 标签,看似随机。我不确定是什么原因造成的,但它确实发生了。在这些情况下,我发现使用麻烦的链接而不是做

selenium.click(...)

selenium.fireEvent( locator, 'click' );

正如其他人在我上面所说的那样,我特别遇到了如下所示的 anchor 标记问题:

<a href="javascript:...." >

关于java - Selenium click() 事件似乎并不总是被触发 => 导致超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/633600/

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