無法使用 driver.find_element_by_css_selector 點擊按鈕
我嘗試使用這個定位元素driver.find_element_by_css_selector
driver.find_element_by_css_selector('#minicart-content-wrapper > div.block-content > div.actions-wrapper > div:nth-child(1) > div > a')
并擁有此代碼
<a 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但它不起作用
請幫忙
uj5u.com熱心網友回復:
如果我們有獨特的條目,請檢查dev tools(谷歌瀏覽器)。HTML-DOM
你應該檢查的xpath:
//a[contains(.,'View Cart')]
檢查步驟:
Press F12 in Chrome-> 轉到element部分 -> 執行CTRL F-> 然后粘貼xpath并查看,如果您想要element的是否使用匹配節點突出顯示。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。
uj5u.com熱心網友回復:
根據查詢中提供的 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等到元素可見/可點擊等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/447840.html
