簡體   English   中英

使用 Selenium 和 Python 訪問網頁時,Selenium 無法單擊元素

[英]Selenium unable to click on elements while accessing a webpage using Selenium and Python

我正在嘗試抓取此頁面。 在進入頁面列表之前,會彈出一個選擇位置窗口,所以我試圖告訴 selenium 單擊兩個按鈕以訪問產品列表。

問題是,Selenium 無法定位我用來定位這兩個按鈕的 xpath!

這是我的代碼:

from selenium import webdriver
driver = webdriver.Chrome("webdriver/chromedriver.exe")
driver.implicitly_wait(30)
driver.get("https://www.indiacashandcarry.com/shop/HomestyleFood")

locationButton = driver.find_element_by_xpath('//*[@id="location-list"]/li[1]/h4/a')
groceriesButton = driver.find_element_by_xpath('//*[@id="price-list-0"]/ul/li[1]')
locationButton.click()
groceriesButton.click()

這是網站: https : //www.indiacashandcarry.com/shop/HomestyleFood

我想這是因為這個彈出窗口在其他類型的框架上,但我找不到任何 iframe 索引,所以我有點迷茫。 請幫忙!

您的 xpath 看起來不錯。使用Webdriverwait處理動態元素。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome("webdriver/chromedriver.exe")
driver.get("https://www.indiacashandcarry.com/shop/HomestyleFood")
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,'//*[@id="location-list"]/li[1]/h4/a'))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//*[@id="price-list-0"]/ul/li[1]'))).click()

在網站https://www.indiacashandcarry.com/shop/HomestyleFood首先click()FREMONT關聯的選擇此位置,然后click() Groceries您需要為element_to_be_clickable()誘導WebDriverWait ,您可以使用以下解決方案:

  • 代碼塊:

     options = webdriver.ChromeOptions() options.add_argument("start-maximized") # options.add_argument('disable-infobars') options.add_argument('--disable-extensions') driver=webdriver.Chrome(chrome_options=options, executable_path=r'C:\\Utility\\BrowserDrivers\\chromedriver.exe') driver.get("https://www.indiacashandcarry.com/shop/HomestyleFood") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//h4[contains(., 'Fremont')]/a"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//h5[@class='mtopbot5 ng-binding' and contains(., 'Groceries')]"))).click()
  • 瀏覽器快照:

弗里蒙特_雜貨店

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM