Python 在FOR循环中的selenium中未检测到web元素

Python 在FOR循环中的selenium中未检测到web元素,python,excel,python-2.7,selenium,selenium-webdriver,Python,Excel,Python 2.7,Selenium,Selenium Webdriver,我试图从特定的web元素中获取一些信息。问题是,当我尝试在不使用for循环的情况下获取信息时,程序就像一个魔咒。但是,当我将它放入for循环并尝试时,它不会检测到循环中的web元素。以下是我一直在尝试的代码: from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.keys import Keys impo

我试图从特定的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')
打印对象时得到的输出是一个空数组,作为输出
[]
。有人能帮我加强一下吗。硒的新手


在上一个问题中,我问了关于印刷的问题。但问题在于,它本身就是元素本身无法检测到的。这个问题完全不同

我无法打开页面,但据我所知,您希望依次打开链接并执行一些操作。使用
link.send_key(keys.CONTROL+'w')
关闭新打开的选项卡,以便在新选项卡中打开链接。在这种情况下,必须切换到新窗口,以便可以到达新窗口中的元素。您可以通过
driver.window\u handles
查询窗口,并通过
driver.window\u handles[-1])切换到最后一个窗口。关闭窗口后,您必须通过
driver.window\u handles[0])切换回第一个窗口。


没有打印可能重复的无数据。。。。这里的元素本身并没有检测到@MahsumAkbasThanks一吨。。。它现在调用函数并检测它。。。但它不会关闭当前选项卡。当我试图关闭它时,我遇到了这个错误。link.send_keys(keys.CONTROL+'w')文件“C:\Python27\lib\site packages\selenium\webdriver\remote\webelement.py”,第323行,在send_keys self中。执行(Command.send_keys\to_ELEMENT,{'value':typing})文件“C:\Python27\lib\site packages\selenium\webdriver\remote\webelement.py”,第404行,在执行self.error\u handler.check\u响应(响应)文件“C:\Python27\lib\site packages\selenium\webdriver\remote\webdriver.py”中的第195行,在check\u响应引发异常类中的第170行,执行(命令,参数)文件“C:\Python27\lib\site packages\webdriver\remote\errorhandler.py”(消息、屏幕、堆栈跟踪)StaleElement引用异常:消息:元素属于与当前帧不同的帧-切换到其包含帧以使用它
链接。发送键(keys.CONTROL+'w')
不正确。链接无法关闭:),窗口可以关闭。正确的命令是
driver.close()
,但driver.close()将关闭整个浏览器。我只想在完成一些操作后关闭当前选项卡。
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])