Open MauriceWebb opened 3 years ago
According to the source code,Try writing it like this
webdriverOptions: {
capabilities: {
'goog:chromOptions': {
prefs: {
directory_upgrade: true,
prompt_for_download: false,
download: {
directory_upgrade: true,
prompt_for_download: false,
default_directory: downloadDir
},
profile: {
default_content_settings: { popups: 0 },
default_content_setting_values: { automatic_downloads: 1 }
},
safebrowsing: { enabled: false }
}
}
}
}
and you need to add the necessary attributes, as shown in the application file
@StevenT1 Thank you for your response. I was just looking into that and trying it out. Looks like i'm starting to run into some errors after adding the necessary attributes. This is what I am working with now:
webdriverOptions: {
capabilities: {
'goog:chromeOptions': {
binary: path.join(
__dirname,
`../../../node_modules/spectron/lib/${process.platform === 'win32' ? 'launcher.bat' : 'launcher.js'}`
),
args: [
`spectron-arg0=${path.join(__dirname, '../../../')}`
],
windowTypes: ['app', 'webview'],
prefs: {
directory_upgrade: true,
prompt_for_download: false,
download: {
directory_upgrade: true,
prompt_for_download: false,
default_directory: downloadDir
},
profile: {
default_content_settings: { popups: 0 },
default_content_setting_values: { automatic_downloads: 1 }
},
safebrowsing: { enabled: false }
}
}
}
}
which is working, but I am getting errors like:
I believe I will need to pass some args into it per: https://stackoverflow.com/questions/50642308/webdriverexception-unknown-error-devtoolsactiveport-file-doesnt-exist-while-t/50642913#50642913
I'll update this issue with the resolution when I get it working. Thanks!
@StevenT1 Just wanted to note, that I have not been able to solve this yet. Still having issues with the DevToolsActivePort files doesn't exist
error. I've google and applied all I can find to the args
and still no luck. I've also updated the first arg in the 'goog:chromeOptions'
's args
prop to the following:
...
args: [
`spectron-path=${path.join(__dirname, '../../../')}`
]
...
Any further insight or examples would be of great value, anyone.
I am trying to pass google chrome options into the
webdriverOptions
prop but it isn't working.When initializing a page object, I instantiate a Spectron Application instance using the following default options (non-related code has been truncated for simplicity):
Base.page.js
At first, I assumed it was working because after the app has been started, I log the app's settings using a logger method on the page object:
This prints the following to the console:
Terminal Console log
How can I verify that the
webdriverOptions
are indeed set and working properly? When the test runs and gets to a download, the prompts still show up despite having passed"prompt_for_download": false
and"automatic_downloads": 1
, I still see the download prompt occur, and the download folder is not the default"../tempDownload"
as specified in thedefaultOptions
. It is still prompting the download to the"Downloads"
folder:The javascript error that is shown in the screen shot pops-up in result of spectron loosing focus to the browser due to the prompt. This error is more of a cascading error and is not the error in question.
P.S.
It should be noted that I have also tried excluding the
'goog:chromeOptions'
prop and passed the"prefs"
object directly into thewebdriverOptions
prop as well. Still, the same result:package.json
Questions:
webdriverOptions
are indeed set and working properly?"google chrome"
options into a newspectron
instance (for handling downloads)?