browserstack_executor 操作列表在哪里?

时间:2021-03-03 16:46:33

标签: selenium-webdriver browserstack

我发现了以下用途,但没有关于使用 browserstack_executor 的其他可能操作的文档:

  1. 文件存在
  2. 获取文件内容
  3. 获取文件属性
  4. setSessionStatus

我正在寻找一个 removeFileunlinkFiledeleteFile 来删除浏览器下载的文件,并且在下一个文件下载并获得(1) 添加到文件名中。

在我的硒测试中,我正在做这样的事情:

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)}')

我尝试过的所有 3 种方法都得到 invalid action,因此必须有其他方法可以在浏览器堆栈中清除机器上的文件。

2 个答案:

答案 0 :(得分:0)

我相信“browserstack_executor”是一个特定于 BrowserStack 的自定义执行器,它可以执行的操作集有限。

支持的操作在他们的文档中可用: https://www.browserstack.com/docs/automate/selenium/test-file-upload https://www.browserstack.com/docs/automate/selenium/test-file-download

因此,无法执行诸如 removeFile 或 unlinkFile 或 deleteFile 之类的操作,因为它们当前不受支持,并且在上面共享的链接中也未提及。

答案 1 :(得分:0)

根据公司支持人员,没有列表,不支持取消链接。为了解决这个问题,我修改了 FileExists ExpectedCondition 我用来在从测试系统中提取文件后自动增加文件名并使用“下一个可用”名称,以便我的测试可以在本地或在相同的地方运行浏览器堆栈。

相关问题