Python Selenium:我无法点击按钮 - 没有与按钮标签对应的 ID、值、名称

Python Selenium: I can't click on a button - no id, value, name corresponding to button tag

我正在使用 Selenium 单击 link 中的“成为会员”按钮:https://www2.hm.com/en_us/register

这里是按钮的HTML:https://i.stack.imgur.com/Pjeu3.png

我已经用尽了该站点上的所有其他答案:我尝试使用 XPath、CSS 选择器找到此元素,等待元素可点击、可见等,但都无济于事。

这是我当前接受所有 cookie 的代码(因为我认为这是问题所在),然后尝试单击“成为会员”按钮

try:
    # Accepts cookies
    WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, "input[id='onetrust-accept-btn-handler']"))).click()

    # Clicks the register button
    WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, "input[data-testid='submitButton']"))).click()

except:
    print("Driver waited too long!")
    driver.quit()

有谁知道我可以做些什么来解决这个问题?谢谢!

单击您正在使用的 Become A Member 按钮 input[data-testid='submitButton'] 这几乎是正确的,但它不是输入标签,它是一个按钮。

请在此处查看 HTML:

<button class="CTA-module--action__3hGPH CTA-module--medium__dV8ar CTA-module--primary__3hPd- CTA-module--fullWidth__1GZ-5 RegisterForm--submit__2Enwx" data-testid="submitButton" type="submit"><span>BECOME A MEMBER</span></button>

所以将 input[data-testid='submitButton'] 更改为 button[data-testid='submitButton'] 成功了,而且奏效了。

示例代码:-

try:
    # Accepts cookies
    WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, "input[id='onetrust-accept-btn-handler']"))).click()

    # Clicks the register button
    WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, "button[data-testid='submitButton']"))).click()

except:
    print("Driver waited too long!")
    driver.quit()