在 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 对象吗?
【问题讨论】:
enable 和 click 是两个不同的功能,您到底在寻找什么? 我想在运行脚本时单击 Flash 对象,但 Flash 对象被禁用(Shockwave Flash 插件自动设置为“从不激活”),所以我无法单击 Flash 对象。 您能否分享一个包含您希望点击的 Flash 对象 的示例 url?didn't work
时您是否看到任何错误?使用错误堆栈跟踪更新问题
OpenQA.Selenium.Remote.HttpCommandExecutor 与Java
客户端?请用代码试验更新问题。
【参考方案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(量子)火狐浏览器