[英]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"}
歡迎任何幫助;)
嘗試使用如下顯式等待 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.