我正在用 selenium 構建一個刮板,并且我啟動并運行了它,除了我缺少的一個資料欄位。我需要先按下一個按鈕,然后獲取值。但是我一直無法按下按鈕,因為我似乎無法構建正確的 xpath 運算式來使用 selenium,
網址是這個:https : //www.ikea.com/mx/es/p/kallax-estante-blanco-80275887/
我需要單擊“Medidas”按鈕(在頁面中間滾動,就在“Detalles del producto”和“Productos similares”之間)打開側面板并獲取我需要的資訊。但到目前為止,我還無法為按鈕設定正確的 XPATH 運算式。
我試過
driver.find_element_by_xpath(
"//button[@class='range-revamp-chunky-header']"
).click()
但是這樣它點擊了第一個按鈕(“Detalles del producto”)
也嘗試過類似的東西
driver.find_element_by_xpath(
"//button[@class='range-revamp-chunky-header' AND @text='Medidas']"
).click()
但我一直無法使其作業,我剛剛收到此錯誤:
Message: no such element: Unable to locate element: {"method":"xpath","selector":"//button[@class='range-revamp-chunky-header' and @text='Medidas']"}
順便說一下,按鈕串列是動態的......有時,可以有 1、2、3 或 4 個按鈕具有相同的類,我能看到的唯一區別是按鈕的文本,所以總是獲得第二個按鈕該類(如在提供的 URL 中)并不總是有效。
uj5u.com熱心網友回復:
要單擊帶有Medidas文本的元素,您可以使用以下定位器策略:
使用xpath:
driver.find_element(By.XPATH, "//span[text()='Medidas']").click()
理想情況下,您需要為element_to_be_clickable()引入WebDriverWait,您可以使用以下任一定位器策略:
使用XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[contains(., 'login or register')]"))).click()注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/376130.html
標籤:Python 硒 硒网络驱动程序 路径 网络驱动程序等待
