尝试通过 Xpath 在 Selenium 中查找元素时出错

Error while trying to find an element by Xpath in Selenium

错误: selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{"method":"css selector","selector":"#submit-6359ad565c26651cca764d4e291dca49"}

在这个网站上:https://provide-journey-contact-details.homeoffice.gov.uk/next,我收到 'Save and Continue' 按钮的错误,我尝试通过 xpath 找到它,然后通过 css 选择器找到它,但它不起作用。我应该怎么办?请帮忙

driver.find_element_by_xpath(email_address).send_keys("almacompexim@yahoo.com")
driver.find_element_by_xpath(email_verify).send_keys("almacompexim@yahoo.com")
driver.find_element_by_xpath(password).send_keys("Alin1234")
driver.find_element_by_xpath(password_verify).send_keys("Alin1234")
wait = WebDriverWait(driver, 20)
wait.until(EC.visibility_of_element_located((By.XPATH, "//*[contains(@id, 'submit')]"))).click()

我无法打开该页面,但我猜你在访问该元素之前缺少等待/延迟。
此外,6359ad565c26651cca764d4e291dca49 后缀可能是动态的。
试试这个:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 20)

wait.until(EC.visibility_of_element_located((By.XPATH, "//*[contains(@id,'submit')]"))).click()

如果元素最初不在可见屏幕中,您必须先滚动到它。
像这样:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 20)
actions = ActionChains(driver)

button = wait.until(EC.presence_of_element_located((By.XPATH, "//*[contains(@id,'submit')]")))
time.sleep(0.5)
actions.move_to_element(button).perform()
time.sleep(0.5)
button.click()

UPD
该元素的唯一 XPath 是

//div[contains(@style,'display')]//div[contains(@style,'display')]//input[@value='Save and continue' and @type='submit']

您也可以使用更短的定位符,但这是唯一定位该按钮的方法。
因此,您单击该按钮的代码可以是:

wait.until(EC.presence_of_element_located((By.XPATH, "//div[contains(@style,'display')]//div[contains(@style,'display')]//input[@value='Save and continue' and @type='submit']"))).click()