在Python中捕获get请求中的URL

时间:2016-06-08 09:34:03

标签: python python-3.x

我正在编写python代码来自动化测试以下载文件。 我通过单击下载图标下载了该文件。我现在正在尝试断言正确的文件是在后台下载的。为此,我需要提取get请求和参数。此参数和URL将包含用于标识是否/是否下载了正确文档的值。

你能帮我吗?非常感谢。

以下是我正在运行的代码。

import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

mime_types = "application/pdf,application/vnd.adobe.xfdf,application/vnd.fdf,application/vnd.adobe.xdp+xml"

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", mime_types)
fp.set_preference("plugin.disable_full_page_plugin_for_types", mime_types)
fp.set_preference("pdfjs.disabled", True)


driver = webdriver.Firefox(firefox_profile=fp)
driver.get('site-name')

# login
driver.find_element_by_class_name('textboxUserName').send_keys(name)
driver.find_element_by_id('dummy1').click()
driver.find_element_by_id('content__login_Password').send_keys(pwd)
driver.find_element_by_id('content__login_Password').send_keys(Keys.RETURN)

# search
driver.find_element_by_id('top-search-input').send_keys('9001')
driver.find_element_by_id('top-search-input').send_keys(Keys.RETURN)

# download
driver.find_element_by_xpath("//ul[@class='search-result-list']/li[1]/div/ul/li[7]").click()

如前所述,我想确保已下载该文件。所以我想在点击下载按钮时从GET获取某些值。

感谢

1 个答案:

答案 0 :(得分:0)

我认为有两种方法可以做到。

  1. 就像我在评论中提到的那样,您只需检查下载链接的“href”属性,而不是点击它。

  2. 程序点击链接后,请使用:

    driver.implicitly_wait(5)#just是安全的

    print driver.current_url

  3. 希望这有帮助。

    更新: 根据你的评论,如果AJAX最终打开另一个窗口,那么这将解决问题:

    for handle in driver.window_handles:
        driver.switch_to_window(handle)
        print driver.current_url