我已经被困在这行代码超过2个星期了,我希望有人可以来帮助我!
我正在使用python selenium浏览一个包含数据库的网站。我想点击一个链接,这将打开一个新的选项卡,从中我要提取的信息,我正在寻找。我只需要做一次,所以不需要任何类型的循环!然而,我已经尝试了很多次,我得到了最好的结果 ElementClickInterceptedException
每次都有错误消息。我试过使用 WebDriverWait
,然后我得到 NoSuchElement
错误消息。我试过用几种方法搜索元素,包括id,类名, xpath
,和链接文本,但没有运气!
htlm代码如下所示:
<a id="reportsForm:j_idt290:4:j_idt295" href="#" class="ui-commandlink ui-widget nav-item " onclick="PrimeFaces.addSubmitParam('reportsForm',{'reportsForm:j_idt290:4:j_idt295':'reportsForm:j_idt290:4:j_idt295'}).submit('reportsForm','_blank');return false;" target="_blank"><span id="reportsForm:j_idt290:4:l2" data-hasqtip="reportsForm:j_idt290:4:tooltipID" aria-describedby="qtip-reportsForm:j_idt290:4:tooltipID">Análise Financeira e de Gestão</span></a>
<span id="reportsForm:j_idt290:4:l2" data-hasqtip="reportsForm:j_idt290:4:tooltipID" aria-describedby="qtip-reportsForm:j_idt290:4:tooltipID">Análise Financeira e de Gestão</span>
到目前为止,我试过:
afg = driver.find_element_by_link_text("Análise Financeira e de Gestão")
afg = driver.find_element_by_xpath("//*[contains(text(), 'Análise Financeira e de Gestão')]")
WebDriverWait(driver,10).until(expected_conditions.element_to_be_clickable((By.ID,"reportsForm:j_idt290:4:j_idt295"))).click()
afg = driver.find_element_by_id("j_idt290:4:j_idt295")
我认为问题可能是因为链接文本不是紧跟在 href
,甚至不在同一条线上!所以,当我按链接文本搜索时,找不到。。。
而且,有时,完全不更改代码,只需使用driver.find\u element\u by\u id方法再次运行它,它就会突然工作一到两次,但随后它又停止工作!
有什么办法解决这个问题吗?
谢谢你的帮助!!!:)
2条答案
按热度按时间dwthyt8l1#
你可以试试这个xpath。
py49o6xq2#
也许你试图点击的元素是在一个帧中找到的,如果是这样的话,你应该先切换到那个iframe,然后你就可以对这个元素执行所需的操作了