如何使用selenium网络驱动程序选择元素样式



我很难让网站显示硒的隐藏部分。我试过在stackoverflow上找到的旧awnser,但它们似乎已经不起作用了。我也看到开发人员通过请求来解决这个问题,但这不是我所熟悉的。

我正在尝试使captcha令牌元素可见,以使网站自动化。为了制作我的代码,我正在谷歌recatcha演示网站上进行培训(https://www.google.com/recaptcha/api2/demo)。

我遇到了麻烦,因为为了显示这个元素,我需要在HTML中单击一个案例,而我不知道如何使用selenium。

我看到有人说,为了显示元素,我只需要删除显示:none字符串,但它不起作用。我似乎找到的唯一方法是在带有谷歌chrome.的inspect元素中单击元素.style{大小写

我需要与之交互的网站代码的HTML部分是:

<textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px;height: 40px;border: 1px solid rgb(193, 193, 193);margin: 10px 25px;padding: 0px;resize: none;display: none;"></textarea>

您可以看到显示:none字符串末尾的大小写

当我点击这个案例时(我放了两个屏幕截图,这样对你来说更清楚(,它会在代码中写下:

/*显示:无;*/

然后不可见元素出现,我可以与它交互。

我的问题是,我如何让硒做到这一点?我确实知道这与CSS有关,但由于没有与显示相反的词:none,我不知道该怎么办。

如果我不够清楚,请告诉我。

感谢

元素未显示

元素显示

您可以使用javascript删除样式属性。您可以告诉selenium为您执行javascript代码。

像这样的东西:

driver.execute_script('document.getElementById("g-recaptcha-response").style.display = null;')

有关在selenium:中执行javascript的更多信息

https://pythonbasics.org/selenium-execute-javascript/

有关使用javascript:删除样式属性的更多信息

删除元素上的样式

相关内容

  • 没有找到相关文章

最新更新