无法使用驱动程序点击按钮。find_element_by_css_selector
我尝试使用此定位元素驱动程序。find_element_by_css_selectordriver.find_element_by_css_selector('#minicart-content-wrapper > div.block-content > div.actions-wrapper > div:nth-child(1) > div > a')
并且有这个代码<a class="action viewcart" data-bind="attr: {href: shoppingCartUrl}" href="https:..." data-uw-styling-context="true" data-uw-rm-brl="false"> <span data-bind="i18n: 'View and Edit Cart'" data-uw-styling-context="true">View Cart</span> </a>
我尝试使用x_path//*[@id="minicart-content-wrapper"]/div[2]/div[5]/div[1]/div/a
,但它不工作
如果我们在HTML-DOM
中是否有唯一条目,请检查dev tools
(Google chrome(。
您应该检查的xpath:
//a[contains(.,'View Cart')]
检查步骤:
Press F12 in Chrome
->转到element
部分->进行CTRL + F
->然后粘贴xpath
,看看您想要的element
是否通过1/1
匹配节点突出显示。
如果这是一个独特的匹配,那么点击如下:
代码试用1:
time.sleep(5)
driver.find_element(By.XPATH, "//a[contains(.,'View Cart')]").click()
代码试用2:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(.,'View Cart')]"))).click()
进口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
建议使用代码试用版2。
基于查询中提供的html代码,以下定位器策略应该有效:
按CLASS_NAME:
driver.find_element(By.CLASS_NAME, 'action viewcart'])
通过CSS_SELECTOR:
driver.find_element(By.CSS_SELECTOR, '.action viewcart'])
OR
driver.find_element(By.CSS_SELECTOR, "a[class='action viewcart']")
通过XPATH(带文本(:
driver.find_element(By.XPATH, "//*[text()='View Cart']")
按LINK_TEXT:
driver.find_element(By.LINK_TEXT, 'View Cart'])
通过XPATH(包含(:
driver.find_element(By.XPATH, "//span[contains(text(), 'View and Edit Cart')"])
建议您使用explict wait
,如WebdriverWait
,以等待元素可见/可点击等。