Web元素在FOR LOOP中未在selenium中检测到

我试图从特定的Web元素获取一些信息。 问题是,当我试图获取没有for循环的信息程序就像一个魅力。 但是,当我把它放在一个for循环,并尝试它没有检测到循环中的Web元素。 这是我一直在尝试的代码:

from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.keys import Keys import time from lxml import html import requests import xlwt browser = webdriver.Firefox() # Get local session of firefox # 0 wait until the pages are loaded browser.implicitly_wait(3) # 3 secs should be enough. if not, increase it browser.get("http://ae.bizdirlib.com/taxonomy/term/1493") # Load page links = browser.find_elements_by_css_selector("h2 > a") def test():#test function elems = browser.find_elements_by_css_selector("div.content.clearfix > div > fieldset> div > ul > li > span") print elems for elem in elems: print elem.text elem1 = browser.find_elements_by_css_selector("div.content.clearfix>div>fieldset>div>ul>li>a") for elems21 in elem1: print elems21.text return 0 for link in links: link.send_keys(Keys.CONTROL + Keys.RETURN) link.send_keys(Keys.CONTROL + Keys.PAGE_UP) time.sleep(5) test() # Want to call test function link.send_keys(Keys.CONTROL + 'w') 

当我打印对象时得到的输出是一个空数组作为输出[] 。 有人可以帮助我提高它吗? 新手去selenium。

在之前的问题中,我问过打印问题。 但问题在于,它本身就是元素本身没有被检测到。 这样的问题是完全不同的。

我不能打开页面,但据我所知,你想打开链接顺序,做一些事情。 使用link.send_keys(Keys.CONTROL + 'w')您将closures新打开的选项卡,以便您的链接在新选项卡中打开。 在这种情况下,必须切换到新窗口,以便您可以在新窗口中到达该元素。 你可以通过driver.window_handles来查询窗口,并通过driver.switch_to_window(driver.window_handles[-1])切换到最后一个窗口,当你closures窗口后,你必须切换回第一个窗口,由driver.switch_to_window(driver.window_handles[0])

 for link in links: link.send_keys(Keys.CONTROL + Keys.RETURN) # switch to new window driver.switch_to_window(driver.window_handles[-1]) link.send_keys(Keys.CONTROL + Keys.PAGE_UP) # dont know why time.sleep(5) test() # Want to call test function link.send_keys(Keys.CONTROL + 'w') #switch back to the first window driver.switch_to_window(driver.window_handles[0])