我最好如何与Selenium Java WebDriver中的Flash进行交互

时间:2014-01-20 18:04:22

标签: java flash selenium selenium-webdriver

我知道过去曾经问过一些类似的问题,例如(Interact flash elements using WebDriver)但是仍然不清楚如何最好地与Selenium的Java WebDriver相关联的页面上的Flash元素进行交互。

默认情况下,我知道它不支持Flash,所以我用它来登录网站,这很好。现在我需要与flash页面进行交互,如本页所示:

http://store.nike.com/us/en_us/product/free-tr-4-id/?piid=34979&pbid=517639039

我希望能够从页面左侧的Flash中选择一个鞋码,然后点击“添加到购物车”按钮。

任何达成此目标的人都能以最佳方式提供指导和意见。我尝试了https://code.google.com/p/flash-selenium/但是这似乎是旧的,或与新的Java WebDriver不兼容。

2 个答案:

答案 0 :(得分:4)

您的问题的答案是:不,您无法与来自/使用 Selenium WebDriver的Flash 进行互动。完全停止。

我知道有很多开发人员需要自动化Flash。但这从未成为Selenium项目的一部分,它永远不会被添加到。你可能希望在Selenium Users group周围闲逛。

对于像flash-seleniumflex-ui-selenium这样的项目,它们不是Selenium项目的一部分,而是由第三方创建的,这意味着它们很容易因各种原因而停止使用。如果您决定使用它们,您可能最终开发项目而不是使用它。此外,我还不知道这些项目与Selenium WebDriver兼容。

另一个可能的解决方案可能是使用Sikuli,但这不是Flash自动化工具。它应该支持使用其独特的图像比较技术自动化Flash。但再一次,这与Selenium毫无关系。

答案 1 :(得分:-1)

有一个很大的误解,即webdriver无法与flash元素交互。答案是肯定你可以与嵌入在html中的flash元素进行交互,如果你能找到你可以使用selenium ACTION类进行交互的xy坐标,就像这样..

Actions Action = new Actions(driver);
WebElement e = driver.findElements(By.cssSelector("button"));
Action.moveToElement(e).clickAndHold().perform();
Action.release().perform();