找不到带有Splinter的元素,尝试了所有方法并每次都返回空字符串

时间:2019-01-26 12:51:13

标签: python python-3.x splinter

我试图单击“下一步”按钮,但无论是文本还是XPath,类或其他方法都找不到它。我还尝试过从较大的元素列表中返回所有元素,而且也不存在。

我不知道到底是什么问题,为什么不存在。

HTML:

<div class="topnav clearfix">
    <div class="toptotal">Viewing 1 - 10</div>
    <div class="pos-right">
        <span class="page-start" style="width:53px">Previous</span>
        <span class="page-cur">1</span> 
        <a class="list_goto_page" data="2" href="javascript:void(0);">2</a>                
        <span class="page-break">...</span>
        <a class="list_goto_page" data="117" href="javascript:void(0);">117</a> 
        <a class="page-next list_goto_page" data="2" href="javascript:void(0);">Next</a>
    </div>

PYTHON代码:

browser.visit(link)
time.sleep(2)

nb = browser.find_by_xpath(xpath='//div[@class="topnav clearfix"]//a')
print nb

结果:

[]
Traceback (most recent call last):
  File "C:\Work\Machine Learning\bot\bot.py", line 24, in <module>
    nb.first.click()
  File "C:\Python27\lib\site-packages\splinter\element_list.py", line 53, in first
    return self[0]
  File "C:\Python27\lib\site-packages\splinter\element_list.py", line 44, in __getitem__
    self.find_by, self.query))
splinter.exceptions.ElementDoesNotExist: no elements could be found with xpath "//div[@class="topnav clearfix"]//a"

我希望它找到并单击该元素,因此可以转到下一页。但是,相反,我得到了一个空元素列表。我做错了什么,如何解决?谢谢

1 个答案:

答案 0 :(得分:0)

原来,我要查找的元素已嵌入到iframe中,我必须首先访问它才能找到我要查找的元素。