簡體   English   中英

找不到硒中的元素(python)

[英]Can't find the element in selenium (python)

我想抓取以下網頁:墨卡托商店,但我不知道如何關閉“Izbira načina prevzema artiklov”圖片中的窗口:

墨卡托店架

我已經嘗試復制 x 按鈕的 XPATH (//*[@id="237955"]/div/div/div 1 /a),但它拋出錯誤並說沒有這樣的元素。

這是我的代碼,它不起作用:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("https://trgovina.mercator.si/market/brskaj")
time.sleep(5)

x = driver.find_element_by_xpath("/html/body/div[8]/div")
x.find_element_by_xpath("/html/body/div[8]/div/a[1]").click()

y = driver.find_element_by_xpath("/html/body/div[9]")
driver.find_element_by_xpath("/html/body/div[9]/div/a[2]").click()

driver.find_element_by_xpath('//*[@id="gdpr-cookie-accept"]').click()

g = driver.find_element_by_xpath('//*[@id="237955"]/div/div/div[1]/a')

錯誤消息:selenium.common.exceptions.NoSuchElementException:消息:沒有這樣的元素:無法定位元素:{"method":"xpath","selector":"///*[@id="237955"]/div/ div/div 1 /a"}

歡迎任何幫助;)

您可以嘗試使用他們的 API:

import requests

url = "https://trgovina.mercator.si/market/products/browseProducts/getProducts"
params = {"limit": 100, "offset": 0}
data = requests.get(url, params=params).json()
df = pd.json_normalize(data)

示例輸出:

在此處輸入圖片說明

嘗試使用如下顯式等待 WebDriverWait wait =New WebDriverWait(driver,Duration.ofSeconds(20)); wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(“在此處輸入xpath”))).click();

或者它可以是一個需要處理的 iframe,如下所示 List frame=driver.findElements(By.tagName(“iframe”)); driver.switchTo().frame(0); 然后找到所需的元素。 之后 driver.switchTo().defaultContent();

如果有多個幀,請使用 for 循環。您可以使用 frame.size() 函數找到沒有幀。

這將使通過檢查更容易找到按鈕並獲得完整路徑。 要獲得正確的結果,您應該使用 webdriver 打開的瀏覽器。

如果您用下面的 Xpath 替換代碼的最后一部分,它將起作用。

g = driver.find_element_by_xpath("//div[@class='modal-dialog modal-lg']/div[@class='modal-content']/div[@class='modal-header']/a")
    
g.click()

暫無
暫無

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

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