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

我知道一些类似的问题,例如( 使用WebDriver的Interact flash元素 )过去曾被问过,但是仍然不清楚如何最好地与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不兼容。

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

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

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

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

有一个很大的误解,即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();