Selenium网络驱动程序无法使用driver.find_element_by_css_selector单击按钮



无法使用驱动程序点击按钮。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,以等待元素可见/可点击等。

相关内容

  • 没有找到相关文章

最新更新