在 Firefox 量子浏览器上通过 Selenium Webdriver 运行脚本时无法单击 Flash 对象(版本:59.0.3)

Posted

技术标签:

【中文标题】在 Firefox 量子浏览器上通过 Selenium Webdriver 运行脚本时无法单击 Flash 对象(版本:59.0.3)【英文标题】:Unable to click on Flash object, while running scripts through Selenium Webdriver on Firefox quantum browser(version:59.0.3) 【发布时间】:2018-10-20 09:46:46 【问题描述】:

Flash object screenshotFirefox 在通过 selenium webdriver 运行脚本时将Shockwave Flash 插件选项禁用为“从不活动”并选择“阻止危险和侵入性Flash 内容”选项。因此,无法点击 Flash 对象。

我尝试了以下选项,但对我不起作用。

尝试手动将 shockwave flash 插件 选项设置为“始终激活”并取消选择“阻止危险和侵入性 Flash 内容”选项。 在配置文件中使用下面的代码。 profile.setPreference("dom.ipc.plugins.enabled.libflashplayer.so","true"); profile.setPreference("plugin.state.flash", 2);

我使用以下代码点击 Flash 对象:

public PublicDocuments UploadNew(string fileToUpload)
        

            try
          

                Wait.ForLoading(waitTime.SMALL);


                page.Element("//object[@id='SWFUpload_0']", locateBy.XPATH).GetOne().Click();



               // IWebElement we = driver.FindElement(By.XPath("//object[@id='SWFUpload_0']"));


               // Point point = we.Location;
               //int xcord = point.X;
               //Console.WriteLine(xcord);
               //int ycord = point.Y;
               // Debug.WriteLine("ycord is:"+ycord);

               // // IjavascriptExecutor js = (IJavaScriptExecutor)driver;
               // ////js.ExecuteScript(args[0].Click(); ", we);
               //  Actions builder = new Actions(driver);

               // builder.MoveToElement(driver.FindElement(By.XPath("//object[@id='SWFUpload_0']")), 3, 126).ClickAndHold().Build().Perform();






            

还有其他方法可以点击/启用 Flash 对象吗?

【问题讨论】:

enableclick 是两个不同的功能,您到底在寻找什么? 我想在运行脚本时单击 Flash 对象,但 Flash 对象被禁用(Shockwave Flash 插件自动设置为“从不激活”),所以我无法单击 Flash 对象。 您能否分享一个包含您希望点击的 Flash 对象 的示例 url? didn't work 时您是否看到任何错误?使用错误堆栈跟踪更新问题 OpenQA.Selenium.Remote.HttpCommandExecutorJava 客户端?请用代码试验更新问题。 【参考方案1】:

1/ 使用 firefox.exe -p 手动创建新的 firefox 配置文件 2/ 使用新配置文件运行 Firefox 3/ 根据需要设置配置文件

使用此代码在自定义配置文件中运行测试:

FirefoxOptions options = new FirefoxOptions();

ProfilesIni allProfiles = new ProfilesIni();         
FirefoxProfile selenium_profile = allProfiles.getProfile("selenium_profile");
options.setProfile(selenium_profile);

options.setBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
System.setProperty("webdriver.gecko.driver", "C:\\Users\\pburgr\\Desktop\\geckodriver-v0.20.0-win64\\geckodriver.exe");
driver = new FirefoxDriver(options);
driver.manage().window().maximize();

【讨论】:

感谢您的建议,但对我没有用。

以上是关于在 Firefox 量子浏览器上通过 Selenium Webdriver 运行脚本时无法单击 Flash 对象(版本:59.0.3)的主要内容,如果未能解决你的问题,请参考以下文章

来体验全新的Firefox Quantum(量子)火狐浏览器

第一个自动化脚本

selenium 在eclipse中运行打开火狐浏览器报错求大神看一下

Selenium 2.53 不适用于 Firefox 28

最好的火狐浏览器Firefox Quantum

Firefox 快得让你“不再等待”!