我一直在尝试获取 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 有关 感谢您提前的帮助 最好
您需要切换到 iframe 然后执行 xpath
iframe = driver.find_element(By.XPATH,"//iframe")
driver.switch_to.frame(iframe)