Selenium可以定位一个元素,但它似乎返回了一个空对象,这是出乎意料的



这个已经困扰我一段时间了。我试图用Selenium(与Python绑定(在页面中定位一个元素。目标元素如下,

<a id="topmenu_adhocQtraditional_Reports" title="" href="javascript:menuGizmo.navigate('Reports','mdiv_topmenu_Reports','topmenu_adhocQtraditional','Adhoc Query Traditional LIMS',function(){sapphire.page.navigate('rc?command=page&amp;page=AdhocQTraditional','Y',null, null, true, document.getElementById('topmenu_adhocQtraditional_Reports'))})" class="menugizmo_link" _menuid="Reports">Adhoc Query Traditional LIMS</a>

我的问题是,我想在标签中找到上面的元素,Selenium似乎能够找到它,因为它不会抛出错误。然而,当我尝试在它上应用click((方法时,它会抛出一个错误,说"不可交互"。我尝试使用is_displayed((方法,它返回false。但我确信我已经等了足够的时间来等待页面加载完成。

知道为什么会发生这种事吗?

您可能需要使用ActionsChain首先移动到元素,然后使用Actions类点击它:

const actions = driver.actions();
await actions
.mouse(your web element here) 
.perform();

阅读更多关于Actions类与Javascript在这里

最新更新