Selenium网络驱动程序:如何使用JavaScripts获取嵌入式图像数据
Selenium webdriver : How to get embedded image data using JavaScripts?
我必须从下面提到的html中获取src,请告诉我如何获取嵌入的图像数据?使用JS可以做到这一点吗?是否有任何方法可以向隐藏元素显示?我在Java中使用Selenium web驱动程序。
<div id="sc859" class="atv4 alc sc-view c-image sc-hidden" style="left: 0px; right: 0px; top: 0px; bottom: 0px">
<img style="height: 100%; width: 100%;" src="data:image/gif;base64,R0lGODlhAQABAJAAAP///wAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==" class="alc-img"/>
</div>
我的代码:
JavascriptExecutor jse = (JavascriptExecutor)driver;
WebElement element = driver.findElement(By.cssSelector("#sc859"));
String imgeJs = (String) jse.executeScript("document.getElementsById('sc859')[0].getAttribute('src');", element);
System.out.println(imgeJs);
试试这个:
WebElement div = driver.findElement(By.id("sc859"));
String image = div.findElement(By.className("alc-img")).getAttribute("src");
System.out.println(image);
我以前从未使用过document.getElementsById('sc859')[0].getAttribute('src');"
。我总是像下面这样直接执行脚本。希望这是你想要的。而且,src
不存在于div
上,而存在于下面的img
标记上,所以您的选择器是错误的。
String src = (String) ((JavascriptExecutor)driver).executeScript("return document.querySelector('"#sc859>img'").getAttribute('"src'");");
System.out.println(src);
打印
data:image/gif;base64,R0lGODlhAQABAJAAAP///wAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==
不需要使用JavaScript,也可以缩短Francesco的回答,如下所示:
String src = driver.findElement(By.cssSelector("#sc859 > img.alc-img")).getAttribute("src");
你做错了三件事-
1-getElementsById它的getElementById
,它只返回一个元素,而不是它的集合。据我所知,没有getElementsById方法。
2-executeScript方法中缺少return。
3-没有src属性附加到您已经传递了id的div元素。src只附加到img属性。
所以最后你的代码应该是这样的:
String imgeJs = jse.executeScript("return document.getElementById('sc859').childNodes[1].getAttribute('src')").toString();
或者您也可以通过以下方式实现:
WebElement element = driver.findElement(By.cssSelector("#sc859" > img.alc-img));
String imgeJs = jse.executeScript("return arguments[0].getAttribute('src')", element).toString();
或者按照剩下的答案,只需使用WebElement接口的element.getAttribute("src")
方法即可完成。
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 有可能过滤来自嵌入式YouTube的声音吗
- jquery试图按名称获取按钮位置
- 如何在jQuery中获取元素的形式
- 如何在php文件中获取$.post-ajax传递的值
- 在Shopify中获取博客文章的图片
- 使用Javascript获取所选选项ID
- 在jQuery中获取表的行索引
- 使用jquery将mysql数据获取到新的表行中
- 在动态创建的元素上获取对特定选择器的引用
- 从城市名称获取惊喜
- Angular只从数组中获取所需的数据
- Selenium网络驱动程序:如何使用JavaScripts获取嵌入式图像数据
- 上传YouTube嵌入式代码时在php中获取html标签
- 如何通过 JS 获取嵌入式 SVG 文档的文本
- 获取嵌入式视频's使用javascript的URL
- 正在从嵌入式用户控件获取ClientID
- 如何在嵌入式页面js代码中获取父级iframe大小
- 在html页面中的嵌入式kibana图表中获取对时间戳的引用
- 从嵌入式 iframe 中获取全局变量