selenium-webdriverbrowserstack

Where is a list of browserstack_executor actions?


I've found uses of the following, but no documentation for other possible actions using the browserstack_executor:

  1. fileExists
  2. getFileContent
  3. getFileProperties
  4. setSessionStatus

I'm looking for a removeFile or unlinkFile or deleteFile to remove a file that was downloaded by the browser and is now in the way when the next file downloads and gets a (1) added to the filename.

In my selenium test I'm doing something like this:

if driver._is_remote:
    action = {"action": "fileExists", "arguments": {"fileName": os.path.basename(self.filepath)}}
    if driver.execute_script(f'browserstack_executor:{json.dumps(action)}'):
        action = {"action": "getFileContent", "arguments": {"fileName": os.path.basename(self.filepath)}}

        content = driver.execute_script(f'browserstack_executor:{json.dumps(action)}')
        with open(self.filepath, "wb") as f:
            f.write(base64.b64decode(content))

        action = {"action": "deleteFile", "arguments": {"fileName": os.path.basename(self.filepath)}}
        delete_status = driver.execute_script(f'browserstack_executor:{json.dumps(action)}')

I keep getting invalid action with all of the 3 I've tried so there must be something else to get rid of a file on the machine at browserstack.


Solution

  • I believe 'browserstack_executor' is a custom executor specific to BrowserStack and has a limited set of operations that it can perform.

    The supported operations are available in their documentation: https://www.browserstack.com/docs/automate/selenium/test-file-upload https://www.browserstack.com/docs/automate/selenium/test-file-download

    Hence, operations like removeFile or unlinkFile or deleteFile, cannot be performed, as they are not supported currently and are also not mentioned in the links shared above.