无法定位元素硒:

时间:2021-07-26 02:26:39

标签: python selenium selenium-webdriver

    tos = driver.find_element_by_id("TOS_CHECKBOX").click()
    check_out = driver.find_element_by_class_name("btn btn--small-wide")
    check_out.click()

网站链接:https://www.squidindustries.co/cart

我可以检查服务条款框,但是当我尝试单击结帐按钮时,出现错误“没有这样的元素:无法定位元素:{“方法”:“css 选择器”, "selector":".btn btn--small-wide"}" 我试过 time.sleep 和 driver.implicitly_wait 但似乎都不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你可以使用下面的css:

input[value='Check out']

在代码中:

check_out = driver.find_element_by_css_selector("input[value='Check out']")
check_out.click()

使用显式等待:

checkout = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input[value='Check out']")))
checkout.click()

进口:

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

答案 1 :(得分:0)

您可以尝试使用 explicitWait

checkbox=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//input[@id='TOS_CHECKBOX' and @type='checkbox']")))
checkbox.click()

checkout = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//input[@type='button' and @class='btn btn--small-wide']")))
checkout.click()

导入

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