如何使用selenium和Python根据HTML在网页上单击元素

如何使用selenium和Python根据HTML在网页上单击元素,python,selenium,selenium-webdriver,xpath,css-selectors,Python,Selenium,Selenium Webdriver,Xpath,Css Selectors,我已经尝试了一段时间,但似乎无法使用python selenium找到此元素。我使用的所有方法,无论是用XPath、CSS选择器还是OR类找到的都是否定的,所以有人知道如何找到并点击中间值为“登录”和“按钮”类型的元素吗? 其他一切都很好,只是在选择登录按钮时。以下是代码,以防他们可能有问题或有人想查看,谢谢您可以使用按钮的ID找到按钮,然后单击它: button = driver.find_element_by_id('019a8673-60aa-4b9f-825a-00b01ad36507'

我已经尝试了一段时间,但似乎无法使用python selenium找到此元素。我使用的所有方法,无论是用XPath、CSS选择器还是OR类找到的都是否定的,所以有人知道如何找到并点击中间值为“登录”和“按钮”类型的元素吗?


其他一切都很好,只是在选择登录按钮时。以下是代码,以防他们可能有问题或有人想查看,谢谢您可以使用按钮的ID找到按钮,然后单击它:

button = driver.find_element_by_id('019a8673-60aa-4b9f-825a-00b01ad36507')
button.click()
这里,driver是您的浏览器webdriver

要在文本为登录的元素上调用
单击()
,您需要引导WebDriverWait使该元素可单击,并且可以使用以下任一解决方案:

  • css\u选择器

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.nike-unite-submit-button.loginSubmit.nike-unite-component.blurred > input[value='LOG IN']"))).click()
    
  • xpath

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='nike-unite-submit-button loginSubmit nike-unite-component blurred']/input[@value='LOG IN']"))).click()
    

向我们展示您到目前为止所尝试的内容。selenium.common.exceptions.NoSuchElementException:Message:无法定位元素:[id=“019a8673-60aa-4b9f-825a-00b01ad36507”]运行时会弹出此错误。使用id似乎找不到它,但它可以找到密码和电子邮件地址输入。可能是因为它是一个弹出窗口,它不是驱动程序对象的一部分?它返回时都有错误。当您单击“登录”时,会出现一个弹出窗口,因此该弹出窗口可能不是驱动程序的一部分?我不知道为什么它找不到登录按钮,但仍然可以找到密码和电子邮件输入查看我的更新答案,让我知道状态。我添加了它,似乎该元素无法单击。“登录”窗口会一直等待,直到返回此错误selenium.common.exceptions.TimeoutException:Message:@JohnDeBritto使用更多相关HTML更新问题,并确保元素不在iframe中。没关系,我搜索并找到了一个登录在github上编写脚本并找到我要查找的元素find:driver.find_element_by_xpath(“”/*[@id=“nike unite loginForm”]/div[6]/input”“)。单击()。谢谢你,尽管你帮了大忙
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.nike-unite-submit-button.loginSubmit.nike-unite-component.blurred > input[value='LOG IN']"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='nike-unite-submit-button loginSubmit nike-unite-component blurred']/input[@value='LOG IN']"))).click()