Python 如何使用Selenium获取循环中项目的当前URL

Python 如何使用Selenium获取循环中项目的当前URL,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我正在尝试获取已在循环中的项目的当前url def get_financial_info(self): chrome_options = Options() chrome_options.add_argument("--headless") chrome_options.add_argument("--window-size=1920x1080") driver = webdriver.Chrome(executable_path='/path/chromedri

我正在尝试获取已在循环中的项目的当前url

def get_financial_info(self):
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--window-size=1920x1080")
    driver = webdriver.Chrome(executable_path='/path/chromedriver')

    driver.get("https://www.financialjuice.com")

    try:
        WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='trendWrap']")))
    except TimeoutException:
        driver.quit()

    category_url = [a.get_attribute("href") for a in
                    driver.find_elements_by_xpath("//ul[@class='nav navbar-nav']/li[@class='text-uppercase']/a[@href]")]

    for record in category_url:
        driver.get(record)
        item = {}
        url_element = webdriver.find_elements_by_xpath("//p[@class='headline-title']/a[@href]")

        for links in url_element:
            driver.get(links.get_attribute("href"))
            print driver.current_url
但我得到了第一个实际链接但代码停止了


我试着研究发生了什么,我意识到,webdriver打开了第一个类别,选择了第一个项目,得到了实际的链接,它停止了,而不是返回到前一个url,获取了第二个项目,得到了下一个链接,直到循环结束。

对于内部
循环,应采用与外部循环相同的方法。替换

url_element = webdriver.find_elements_by_xpath("//p[@class='headline-title']/a[@href]")

for links in url_element:
    driver.get(links.get_attribute("href"))
    print driver.current_url


链接是在新窗口中打开还是在iframe中打开?@Danny链接是在同一窗口中打开的可能重复的部分工作了一些,但一直超时,我该怎么做才能避免that@molecules你能澄清一下你说的超时是什么意思吗?它在哪里超时,以及异常的相关部分是什么?我仍然得到不支持的协议和@mrfreester当代码显示为10项时,我得到超时错误共享确切的异常日志,根据提供的链接,您的代码包含更多行,因此错误原因更多。当前票证中提供的代码不包含这些行,因此我的代码只能解决当前问题。。。我认为你应该就新问题开新的罚单
url_element = webdriver.find_elements_by_xpath("//p[@class='headline-title']/a[@href]")

for links in url_element:
    driver.get(links.get_attribute("href"))
    print driver.current_url
url_element = [a.get_attribute('href') for a in webdriver.find_elements_by_xpath("//p[@class='headline-title']/a")]
for link in url_element:
    driver.get(link)
    print driver.current_url