在Selenium节点中获取下载的文件并编写

时间:2018-10-31 13:23:13

标签: selenium-webdriver selenium-rc selenium-grid

我有一个TeamCity服务器(在我的情况下也是Selenium Hub),它触发我的Selenium-Python测试用例并在另一个Windows服务器(节点)中运行它。

以下是我要在硒集线器节点配置中实现的典型测试用例。

  1. 在应用程序中单击“下载模板”,该文件将下载excel工作簿
  2. 获取Chrome / Downloads中最新下载的文件的文件路径(我可以使用下面的代码段进行此工作)
  3. 将此文件路径传递到excel writer库,该库随后填充一些数据
  4. 回到应用程序,单击“上传模板”,这将打开一个文件上传窗口,我使用autoit脚本将文件路径传递到此窗口,然后继续执行进一步的步骤

用于在节点服务器中获取最新下载文件的代码

from selenium import webdriver

driver = webdriver.Chrome()

def get_file_names_chrome():
  if not driver.current_url.startswith("chrome://downloads"):
    driver.get("chrome://downloads/")
  return driver.execute_script("""
          return downloads.Manager.get().items_
          .filter(e => e.state === "COMPLETE")
          .map(e => e.file_url);
          """)


try:
    files = get_file_names_chrome()
    print (files)
finally:
    driver.quit()

还有其他方法可以实现这些步骤吗?

0 个答案:

没有答案