我試圖自動化演示網站鏈接。但無法使用我的相對路徑找到“立即購買”按鈕// a[contains(text(),'Shop Now')]。我注意到 flex 是在 DOM 中撰寫的,這會影響它嗎?
有人能告訴我我在這里想念什么嗎?
立即購買按鈕影像
uj5u.com熱心網友回復:
該元素Shop Now在 an 內,<iframe>因此您必須:
誘導WebDriverWait使所需的幀可用并切換到它。
誘導WebDriverWait使所需元素成為可點擊的。
您可以使用以下任一定位器策略:
使用LINK_TEXT:
driver.get("https://demo.competethemes.com/") WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe#iframe"))) WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Shop Now"))).click()使用XPATH:
driver.get("https://demo.competethemes.com/") WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@id='iframe']"))) WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[text()='Shop Now']"))).click()
注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
uj5u.com熱心網友回復:
嘗試以下方法找到并單擊
button= driver.execute_script('retun document.querySelector("#header-promo > div > div > div.content > div.button > a")')
button.click();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/459109.html
上一篇:找不到資訊時如何回圈“WebDriverWait”功能?
下一篇:使用部分href資訊提取多個文本
