繁体   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