我正在尝试使用 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/