Selenium find_element_by_css_selector未找到元素



我正在进行一个个人项目,使用Python通过Selenium自动加入Twitch频道。这是我第一次使用Selenium,我遇到了一个似乎无法解决的问题。

当加入一个被标记为包含成熟内容的频道时,需要用户单击一个按钮才能开始观看流。我的程序运行良好,直到需要点击按钮。

按钮的HTML显示为:

<button class="ScCoreButton-sc-1qn4ixc-0 ScCoreButtonPrimary-sc-1qn4ixc-1 jnsGXs ksFrFH" data-a-target="player-overlay-mature-accept"><div class="ScCoreButtonLabel-sc-lh1yxp-0 evtFDZ"><div data-a-target="tw-core-button-label-text" class="Layout-sc-nxg1ff-0 eZactg">Start Watching</div></div></button>

由于类名似乎是动态生成的;data-a-target";作为选择器。查看Selenium的文档,我似乎需要使用find_element_by_css_selector函数。我在Chrome开发工具中玩了一下,准备用document.querySelector('button[data-a-target="player-overlay-mature-accept"]')选择按钮,所以我相信它能与Selenium一起使用。

我在Selenium的代码中使用以下代码进行了选择:

mature = driver.find_element_by_css_selector('button[data-a-target="player-overlay-mature-accept"]')

不幸的是,Selenium似乎找不到它,并返回错误消息:

Message: no such element: Unable to locate element: {"method":"css selector","selector":"button[data-a-target="player-overlay-mature-accept"]"}
(Session info: chrome=97.0.4692.71)

我是不是做错了什么?我花了很多时间尝试不同的东西,但似乎什么都不起作用。

也许这个:

mature = driver.find_element_by_xpath("//button[@data-a-target='player-overlay-mature-accept']")

mature = driver.find_element_by_xpath("//button[contains(@data-a-target, 'mature')]")

相关内容

  • 没有找到相关文章

最新更新