如何检查导致网页元素在Python Selenium中不可见的原因?
我正在尝试使用Python的Selenium库点击网页上的一个按钮,但Selenium却报错说“元素当前不可见,因此无法进行交互”。
网页的结构很简单:
<body style="overflow: hidden;">
...
<div aria-hidden="false" style="display: block; ...">
...
<button id="button-aaa" aria-hidden="true" style="...">
...
</div>
...
</body>
我在谷歌和Stackoverflow上搜索过。有些用户说Selenium无法点击那些在父节点上有overflow: hidden
样式的网页元素。但让我惊讶的是,我发现Selenium能够点击一些其他同样在overflow: hidden
父节点下的按钮。
无论如何,我尝试使用driver.execute_script
来把<body>
的样式改成overflow: none
,但Selenium仍然无法点击这个按钮。
我还尝试把按钮的aria-hidden="true"
改成aria-hidden="false"
,但Selenium还是没能点击。
我还尝试给按钮的样式添加"display: block;"
,并尝试了各种不同的样式组合,但Selenium依然无法点击。
我用这个命令检查按钮:buttonelement.is_displayed()
。无论我在DOM中改变什么样式,它总是返回False。这个按钮在Firefox浏览器中明显是可见的,并且可以点击和正常工作。在Chrome控制台中,我能够通过ID选择这个按钮。
我想知道如何检查是什么原因导致Python Selenium看不到这个网页元素?
1 个回答
溢出(Overflow)属性只有五种可能的值:(overflow: auto | hidden | scroll | visible | inherit)
。你可以使用visible
这个值。