如何在点击 javascript 警报时保留我的 Firefox 首选项
How Can I Keep My Firefox Preferences When Clicking on Javascript Alert?
我正在尝试单击链接以下载文件。 我已将我的 Firefox 首选项设置为将文件保存到特定位置。 但是,此特定链接提供了一个弹出窗口,我必须在下载前接受该弹出窗口。 接受弹出窗口后,似乎我失去了首选项,并且文件会像往常一样下载(而不是指定的文件)。 如何避免丢失我的偏好?
这是网站:http://gtlaw.com/People/Jeffrey-S-Kahn
我试图点击的链接是这样的:
下载电子名片
我使用的代码是这样的(修改以使复制更容易一些):
url = "http://gtlaw.com/People/Jeffrey-S-Kahn"
#set preferences
fp = webdriver.FirefoxProfile()
file_name = "C:'..........."
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", file_name)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/x-vcard")
fp.set_preference("dom.max_chrome_script_run_time", 0)
fp.set_preference("dom.max_script_run_time", 0)
driver = webdriver.Firefox(firefox_profile=fp)
#get url
driver.get(url)
#get element to click
href = 'javascript:vCard("../webportal/perform.v?obj=ve_oid:poid:Z1tOl9NPl44TqzcSkLMUwG3DtW3D&action=vCard")'
elements = driver.find_elements_by_tag_name('a')
for e in elements:
if e.get_attribute("href") == href:
element = e
#click on element
element.click()
#deal with pop up
driver.switch_to_alert().accept()
考虑到它忽略了永不保存到磁盘选项,我的猜测是您尝试使用的 MIME 类型。
根据 vCard 上的 wiki,从版本 4 开始,他们弃用了类型 text/x-vcard
尝试使用 MIME 类型
text/vcard
如果这不起作用,那么您可以在类型中指定通配符。
*/*
此外,您的代码还有进行一些极端优化的空间。与其遍历页面上的所有 A 元素,只需使用 CSS 选择器即可!
driver.find_element_by_css("a[href*='action=vCard']").click()
相关文章:
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 开放图层导出为 KML 并保留我的地图样式
- 我的iframe赢了't在用javascript更改src值后,保留它的src值
- 即使在重新加载 javascript 后,我如何保留值的值
- 为什么我的 JavaScript 哈希带有保留字“toString”作为显示 NaN 的键
- 如何在点击 javascript 警报时保留我的 Firefox 首选项
- self 在 JavaScript 中不是一个保留字 - 所以它是如何在没有在我的脚本中定义的的情况下使用它的
- 当我制作可拖动克隆时,如何保留元素的高度和宽度
- 如何删除默认工具提示并保留我自己的工具提示的内容
- 我想在搜索完成后保留我的输入字段数据
- 如何保留我的下拉选择
- "class是一个保留的标识符“;我的javascript出了什么问题
- 将WordPress博客添加到网站,同时保留我现有的标题和脚本
- 每次使用时,我的数组也会保留以前的值
- 我的代码是否有任何错误,不允许在关闭应用程序后在移动浏览器上保留cookie
- 我怎么能保留js的评论只是在哪里,他们与闭包编译器
- PHP中的第一个下拉框不保留我的选择
- 如何使用localStorage保留我的输入
- 在与父页相同的窗口中打开GridView行,同时保留我的值
- 如何在单击提交后保留我的HTML页面