无法使用selenium(python)在iframe中通过XPATH定位元素

问题描述 投票:0回答:1

我一直在尝试获取 iframe 中图像的链接,但没有成功。我已经仔细检查了我的导入,并且我拥有运行代码所需的所有导入。我成功切换到框架,但任何在结果中选择元素的尝试都会出现错误(无法定位元素)

# working code
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//main[@class='Content-main']//div[1]/div/iframe"))
# not working code
img = driver.find_element(By.XPATH, "//html[@xmlns='http://something']/body/img")

我听说 XPATH 无法定位 xmlns 内容,所以我也尝试了这些方法来进行搜索(当然是在切换到 iframe 之后):

img = driver.find_element(By.XPATH, "//html/body/img")
img = driver.find_element(By.XPATH, "//body/img")
img = driver.find_element(By.XPATH, "//img")

HTML:

<!DOCTYPE html>
<html lang="en">
    <body>
        <iframe id="activeImage">
            # document
                  <!DOCTYPE html>
                 <html xmlns="http://something">
                        <body>
                            <div> class="irrelevant"></div>
                            <img src="http://something2"></img>
                        </body>
                 </html>
            </iframe>
        </body>
</html>

我认为该问题可能与 !DOCTYPE 中的 !DOCTYPE 有关 感谢您提前的帮助 最好

python-3.x selenium-webdriver iframe selenium-chromedriver
1个回答
0
投票

您需要切换到 iframe 然后执行 xpath

iframe = driver.find_element(By.XPATH,"//iframe")
driver.switch_to.frame(iframe)
© www.soinside.com 2019 - 2024. All rights reserved.