javascript - Selenium 找到的元素缺少一些属性

标签 javascript html selenium web-scraping

我正在尝试使用 Selenium 从网站获取图像的位置。这是我的代码:

    WebDriver driver = new ChromeDriver();        
    driver.get("http://mini.imbc.com/index.html?service=onair&channel=mfm");
    WebElement dynamicElement = (new WebDriverWait(driver, 300)).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[@class='viewer bg-black30']/img")));
    System.out.println(dynamicElement.getAttribute("outerHTML"));        
    driver.quit();

这是我通过上面的代码得到的结果:

<img width="298" height="168">

但是,当我查看页面的 DOM 时,以下是 img 元素的实际内容:

<img width="298" height="168" src="http://img.imbc.com/adams/Program/20149/130555114063940358_Big_C.png">

如何获取元素及其所有属性?

最佳答案

问题是 img 元素在开始时没有 src 属性,并在稍后通过一些 JavaScript 代码添加它。如果您更改 XPath 表达式以添加 [@src]:

//div[@class='viewer bg-black30']/img[@src]

然后 Selenium 将等待,直到 img 元素具有 src 属性。我在这里测试过它并且有效。

关于javascript - Selenium 找到的元素缺少一些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26833020/

相关文章:

javascript - MathJax 将宏定义为最终或最后一个

css - 将鼠标悬停在一个元素上会激活另一个元素

python - Pytest:捕获的 stderr 设置和捕获的日志设置重复

python - 使用 python selenium 在浏览器中创建警报窗口

javascript - Rails 中的 RJS/Javascript 约定

javascript - 通过 npm 导入后无法使用 lib

javascript - Safari 浏览器不读取 Css

python - 尝试从 Web 表中提取数据时出现 Selenium 错误

javascript - 带有滑动图片的动态 jQuery 菜单

jquery - 下拉菜单 jquery 切换项目