flash插件java,JAVA使用selenium启用FLash控件

最近采用爬虫爬取页面,chrome浏览器对flash支持不友好,需要手动触发,网上介绍方法

Map prefsoption = new HashMap<>();

//prefsoption.put("profile.managed_default_content_settings.images",1);

prefsoption.put("profile.content_settings.plugin_whitelist.adobe-flash-player",1);

prefsoption.put("profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player",1);

options.setExperimentalOption("prefs",prefsoption);

public static String _base_url(String url){

if(StringUtils.isEmpty(url)) return url;

if(StringUtils.indexOf(url,"://")<=0){

url = String.format("http://%s",url);

}

try {

URL urls = new URL(url);

return String.format("%s://%s",urls.getProtocol(),urls.getHost());

}catch (Exception e){

return url;

}

}

public static WebElement _shadow_root(WebDriver driver,WebElement element){

return (WebElement)((JavascriptExecutor) driver).executeScript("return arguments[0].shadowRoot", element);

}

public static void allow_flash(WebDriver driver, String url){

url = _base_url(url);

driver.get(String.format("chrome://settings/content/siteDetails?site=%s",url));

WebElement webele_settings = _shadow_root(driver,(((ChromeDriver)driver).findElementByTagName("settings-ui")));

WebElement webele_container = webele_settings.findElement(By.id("container"));

WebElement webele_main = _shadow_root(driver,webele_container.findElement(By.id("main")));

WebElement showing_subpage = _shadow_root(driver,webele_main.findElement(By.className("showing-subpage")));

WebElement advancedPage = showing_subpage.findElement(By.id("advancedPage"));

WebElement settings_privacy_page = _shadow_root(driver,advancedPage.findElement(By.tagName("settings-privacy-page")));

WebElement pages = settings_privacy_page.findElement(By.id("pages"));

WebElement settings_subpage = pages.findElement(By.tagName("settings-subpage"));

WebElement site_details = _shadow_root(driver,settings_subpage.findElement(By.tagName("site-details")));

WebElement plugins = _shadow_root(driver,site_details.findElement(By.id("plugins")));

WebElement permission = plugins.findElement(By.id("permission"));

Select sel = new Select(permission);

sel.selectByValue("allow");

}

使用方法

String url = "https://v.youku.com/v_show/id_XNDIyMTI0MjUwNA==.html?spm=a2ha1.12675304.m_2556_c_8261.d_2&s=5b4e34d331864a6d89dc&scm=20140719.manual.2556.show_5b4e34d331864a6d89dc";

allow_flash(driver,url);

driver.get(url);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值