好到目前为止,我有我的编程去网站我想下载链接并选择它,然后firefox对话框出现,我不知道该怎么办.我想将此文件保存到桌面上的文件夹中.我正在使用它进行夜间构建,所以我需要这个工作.请帮忙.
这是我从网站上获取下载链接的代码:
driver = web driver.Firefox()
driver.implicitly_wait(5)
driver.get("Name of web site I'm grabbing from")
driver.find_element_by_xpath("//a[contains(text(), 'DEV.tgz')]".click()
Run Code Online (Sandbox Code Playgroud) 我正在编写一个potractor测试用例来下载一个可以是任何类型的文件.
__PRE__
我现在如何检查文件是否正确下载.
我希望在禁用缓存功能的情况下使用Firefox /量角器运行测试.(实际上,我正在尝试阻止304 HTTP响应).
有多种方法可以做到这一点:
network.http.use-cache为false手动它有效.我只收到200条回复,这很棒.我希望能够通过量角器配置来设置此标志.经过一些搜索,我发现我必须创建一个自定义配置文件并以这种方式将其设置为量角器(https://code.google.com/p/selenium/wiki/DesiredCapabilities):
capabilities: {
browserName: 'firefox',
firefox_profile: 'support/firefox_profile'
}
Run Code Online (Sandbox Code Playgroud)
问题是不考虑firefox配置文件.这是正确的选择吗?你有更好的主意吗?
谢谢你的帮助.
编辑:作为某人(建议
capabilities: {
prefs: {
'config.http.use-cache': false
}
}
Run Code Online (Sandbox Code Playgroud)
它没有用 - 我检查了about:config,标志仍然启用.您如何知道可以在功能中传递哪些选项?
我按照这个答案,它看起来几乎是我需要的东西.
问题是他已经知道文件名并且我正在进行e2e测试以下载文件,但文件名取决于当前时间(即使是毫秒)所以我真的不知道名字(或者它会非常困难)为拿到它,为实现它).
我想我在这里错过了一些非常简单的东西,但我想到了两个方面:
希望你们能帮助我们提供这些替代方案(我希望对第2点有所帮助)或者给我一个更好的选择.谢谢
试图在我的测试期间找到一个下载文件的解决方案,我发现这个问题引导我在chrome文件夹中找到首选项文件.
显然,没有关于关闭下载提示或/和设置默认文件夹的信息.有谁知道我怎么做到这一点?
这是我试过的:
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
prefs: {
'downloads': {
'prompt_for_download': false,
'default_directory': '/downloads/'
}
}
}
},
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Nightwatch.js构建自动化测试,以验证软件下载链接是否正常工作.我不想下载的文件,因为它们是相当大的,我只是想确认相应的链接返回一个200 HTTP响应,以确保这些链接指向正确的位置.
有想法用Nightwatch.js测试链接到可下载文件的方法吗?
这是我现在拥有的:
/**
* Test Software Downloads
*
* Verify that software downloads are working
*/
module.exports = {
"Download redirect links": function (browser) {
// download links
var downloadLinks = {
"software-download-latest-mac": "http://downloads.company.com/mac/latest/",
"software-download-latest-linux": "http://downloads.company.com/linux/latest/",
"software-download-latest-win32": "http://downloads.company.com/windows/32/latest/",
"software-download-latest-win64": "http://downloads.company.com/windows/64/latest/"
};
// loop through download links
for (var key in downloadLinks) {
if (downloadLinks.hasOwnProperty(key)) {
// test each link's status
browser
.url(downloadLinks[key]);
}
}
// end testing
browser.end();
}
};
Run Code Online (Sandbox Code Playgroud) 我有以下配置,并已将prompt_for_download设置为false但由于某种原因,当我运行测试时,提示下载对话框一直出现.难道我做错了什么?
对于下载代码,我正在关注此处的解决方案和ChromeDriver 2.14.
谢谢.
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
args: ['--lang=en', '--start-maximized'],
prefs: {
'download': {
'prompt_for_download': false,
'default_directory': '/tmp/downloads',
},
},
},
},
Run Code Online (Sandbox Code Playgroud) 我需要下载 CSV 并在 Protractor 测试中检查其内容。测试作为我们部署过程的一部分运行,因此此下载的路径需要是相对的。
查看其他解决方案,我在 /e2e 创建了一个名为 download 的文件夹并将其添加到我的protractor.conf.js:
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['--disable-gpu']
},
prefs: {
'download': {
'prompt_for_download': false,
'default_directory': '/e2e/download'
}
}
},
Run Code Online (Sandbox Code Playgroud)
这是原始测试,单击按钮下载文件,然后检查本地下载文件夹中的内容(下载本身实际运行后需要更改)。
it('should export the csv', () => {
const filename = '../../../Downloads/new_Name_List_members.csv';
const exportButton = testUI.findElementBy({findBy: 'buttonText', value: 'Export to CSV'});
exportButton.click().then(() => {
browser.driver.wait(function() {
// Wait until the file has been downloaded.
return fs.existsSync(filename);
}, 5000).then(function() {
expect(fs.readFileSync(filename, { encoding: 'utf8' })).toContain('username,email,name');
});
}); …Run Code Online (Sandbox Code Playgroud) 我正在测试下载文件,但是当我触发下载时,会出现"另存为..."提示.我在这个SO问题中看到了一个解决方案,但它似乎对我不起作用.
我的量角器配置文件看起来像这样(coffeescript):
exports.config =
capabilities:
browserName: "chrome"
shardTestFiles: true
maxInstances: 2
chromeOptions:
args: ['--no-sandbox', '--test-type=browser']
prefs:
download:
prompt_for_download: false
default_directory: '/'
default_content_settings:
popups: 0
Run Code Online (Sandbox Code Playgroud)
在chromeOptions.pref webdriver文档上说:
有关示例,请参阅Chrome用户数据目录中的"首选项"文件.
我实际上无法default_directory在自己的Chrome偏好设置文件中看到.
"download": {
"directory_upgrade": true,
"prompt_for_download": false
},
Run Code Online (Sandbox Code Playgroud)
testing google-chrome angularjs selenium-webdriver protractor
我想在 Google Chrome 上运行文件下载的 e2e 测试。我提到了几篇文章,包括量角器 - Jasmine - 将文件下载到相对路径、用于下载 pdf 文件的量角器 e2e 测试用例和在量角器测试中设置 chromedriver 首选项,但它们并没有让我满意。
这是我的量角器配置的简短介绍。
...
'os': 'Windows',
'os_version': '8.1',
'browserName': 'Chrome',
'version': '55',
'chromeOptions': {
args: ['--no-sandbox', '--test-type=browser'],
prefs: {
download: {
'prompt_for_download': false,
'directory_upgrade': true,
'default_directory': '/tmp'
}
}
}
...
Run Code Online (Sandbox Code Playgroud)
这是我的测试规范。
it('file download test', () => {
let filePath = path.resolve('/tmp/' + download-filename);
// unlink(filePath);
// click on a link by invoking anchor_element.click()
// at the moment, file download …Run Code Online (Sandbox Code Playgroud) protractor ×9
selenium ×3
angularjs ×2
firefox ×2
jasmine ×2
javascript ×2
angular ×1
download ×1
python ×1
testing ×1