与移动用户代理一起使用时无法使用 python selenium 单击网页元素

Can't click on webpage element using python selenium when used with mobile user-agent

我正在尝试自动点击网页上嵌入式 iframe 音乐播放器的播放按钮,我正在使用 python 3 和 Selenium 对要点击的元素进行 select 编码。

当用户代理更改为复制移动设备时,包装层会遮挡我通常可以点击的按钮,它会询问我是想在主站点上收听还是在浏览器中收听。我想在浏览器中收听,但到目前为止,我尝试点击正确的元素来实现这一点的一切都失败了。

我相信我点击了错误的部分,但找不到访问正确部分的方法。

浏览器的检查 window 显示下面我需要点击的包装器部分:

<a class="mobilePrestitial__link sc-font-light" href="#">
    Listen in browser
  </a>
  ::before
"
    Listen in browser
    "
    /a>

当我将鼠标悬停在 ::before 部分时,它突出显示了浏览器中我认为我需要单击的部分,但是使用右键单击检查 ::before 只是说 'scroll in view' 所以我无法复制无论元素代表什么。

我目前的代码是这样的:

driver.switch_to.default_content()
driver.switch_to.frame(driver.find_element_by_partial_link_text('Listen in browser'))          
element = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '//a[@class="mobilePrestitial__link"]'))
)
element.click()

但它在没有消息的情况下出错,我怀疑我需要单击 ::before 显示的元素,但不知道该怎么做。

我找到了一个变通方法并解决了这个问题,方法是在 python 脚本中使用 Selenium 隐藏包装器覆盖层以进行 Javascript 调用

driver.execute_script('document.getElementsByClassName("mobilePrestitial")[0].style.display=\"none\"') 

使用上述代码隐藏叠加层后,即可在浏览器中访问原始按钮