gpt4 book ai didi

java - Selenium 2 + 幻影 js : unable to perform actions on a mouseover

转载 作者:太空宇宙 更新时间:2023-11-04 14:57:09 26 4
gpt4 key购买 nike

我正在尝试对一个从未完成过的按钮执行操作。

final Actions action = new Actions(mDriver);
final WebElement myCart = mDriver.findElement(By.cssSelector("path to my span"]"));
final WebElement myButton = mDriver.findElement(By.cssSelector("path to my button"));
action.moveToElement(myCart).build().perform();
action.moveToElement(myButton).click().build().perform();

此代码可以在 Firefox 中完美运行,但不能在 phantom JS 中运行

我在这里发现了一些问题How to handle Mouseover in Selenium 2 APIHow to perform mouseover function in Selenium WebDriver using Java?但幻影没有任何作用。

是否有任何已知的解决方法?

谢谢!

最佳答案

大约一年前,我在使用 GhostDriver 和 PhantomJS 时遇到了类似的问题 ( FYI article )。实际上,我也遇到了 IE_Driver 和 Chrome_Driver 的问题,主要与 screen_frame 外部元素的可见性有关(页面必须向下滚动)。

最严重的问题之一是 upload_window 并通过已经提到的方式处理它。我没能实现它。但我的解决方法是在这些有问题的地方切换/转换驱动程序,并在它们完成/处理操作后将其切换回 GhostDriver。即使这样做,执行速度也令人印象深刻。

希望这会有所帮助 - 即使迟到了。

更新:

find IWebElement to process
set WebDriver from GhostDriver to FirefoxDriver
process the IWebElement item with current WebDriver as FirefoxDriver
verify expected result from processing the IWebElement item
set back WebDriver from FirefoxDriver to GhostDriver
continue workflow

据我记得我的测试框架实现 - BaseTest 类负责使用的 WebDriver 和 ISelenium 对象的初始化。因此,对于您更具体的情况,您可以尝试以下操作:

// Create a new instance of the Ghost driver
// Notice that the remainder of the code relies on the interface,
// not the implementation.
WebDriver driver = new GhostDriver();
//do stuff until new driver is needed
driver = new FirefoxDriver();
//do stuff with new driver
//'cast' back after required operations have been completed and verified
driver = new GhostDriver();

关于java - Selenium 2 + 幻影 js : unable to perform actions on a mouseover,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23065046/

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