Selenium Python find_element Xpath 找不到 xpath
Selenium Python find_element Xpath cant find xpath
我想访问一个带有 selenium 的网站,然后出现了一个 addblock-window,我需要点击一个按钮让它消失。
尽管我可以找到我的 XPath(//button[@title='Einverstanden']
, /html/body/div/div[2]/div[3]/div[1]/button[@title = 'Einverstanden']
或
//button[contains(text(),"Einverstanden")]'
) 在浏览器中,
我的 Python 脚本找不到它。而且我似乎找不到错误。
这是我的代码。
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.Firefox()
driver.implicitly_wait(30)
driver.get("``https://www.derstandard.at/story/2000134260361/endspiel-vor-gericht-prozess-gegen-boris-becker-startet-in-london``")
driver.maximize_window()
x = driver.find_element(By.XPATH, "//button[@title = 'Einverstanden']")
print(x)
这是我遇到的错误。
按钮包含在iframe
中,在这种情况下,您首先需要切换到iframe,然后访问元素
这应该有效:
driver.get("https://www.derstandard.at/consent/tcf/")
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, "//div[contains(@id, 'sp_message_container')]//iframe")))
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button[title='Einverstanden']"))).click()
等待导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
如果你想再次切换到默认框架,你可以在需要时使用它:
driver.switch_to.default_content()
我想访问一个带有 selenium 的网站,然后出现了一个 addblock-window,我需要点击一个按钮让它消失。
尽管我可以找到我的 XPath(//button[@title='Einverstanden']
, /html/body/div/div[2]/div[3]/div[1]/button[@title = 'Einverstanden']
或
//button[contains(text(),"Einverstanden")]'
) 在浏览器中,
我的 Python 脚本找不到它。而且我似乎找不到错误。
这是我的代码。
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.Firefox()
driver.implicitly_wait(30)
driver.get("``https://www.derstandard.at/story/2000134260361/endspiel-vor-gericht-prozess-gegen-boris-becker-startet-in-london``")
driver.maximize_window()
x = driver.find_element(By.XPATH, "//button[@title = 'Einverstanden']")
print(x)
这是我遇到的错误。
按钮包含在iframe
中,在这种情况下,您首先需要切换到iframe,然后访问元素
这应该有效:
driver.get("https://www.derstandard.at/consent/tcf/")
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, "//div[contains(@id, 'sp_message_container')]//iframe")))
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button[title='Einverstanden']"))).click()
等待导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
如果你想再次切换到默认框架,你可以在需要时使用它:
driver.switch_to.default_content()