Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
截图指定Javascript中的元素_Javascript_Selenium - Fatal编程技术网

截图指定Javascript中的元素

截图指定Javascript中的元素,javascript,selenium,Javascript,Selenium,我想在我的本地网站上保存一张图片。 我会研究所有的互联网,我发现几乎都是C#和Java代码,但我无法将其转换为Javascrip 几乎使用Point,IO库的示例在javascript中不可用。 我也搜索。 我参加过考试,但对我来说不起作用 现在,, 我的代码可以截图所有网页,但我想让它捕获带有id的图像。 以下是代码: driver.findElement(webdriver.By.xpath('//img[@id="c_pages_Image"]')) .then(function(){

我想在我的本地网站上保存一张图片。 我会研究所有的互联网,我发现几乎都是C#和Java代码,但我无法将其转换为Javascrip

几乎使用
Point
IO
库的示例在javascript中不可用。 我也搜索。 我参加过考试,但对我来说不起作用

现在,, 我的代码可以
截图
所有网页,但我想让它捕获带有id的图像。 以下是代码:

driver.findElement(webdriver.By.xpath('//img[@id="c_pages_Image"]'))
 .then(function(){
    driver.takeScreenshot("c:\\selenium_local_map\\out1.png");
});

driver.takeScreenshot().then(function(data){
   var base64Data = data.replace(/^data:image\/png;base64,/,"")
   fs.writeFile("out.png", base64Data, 'base64', function(err) {
        if(err) console.log(err);
   });
});

我不认为你在评论中的问题与这个问题有关。我相信这个问题是重复的,谢谢你的回答#Asa我想在互联网上找到这个功能。我只想得到一个元素,而不是截图所有网页#疯狂,我读过你的主题,但我想在转到新url时自动捕获。您的示例中,它使用宽度和高度或监视器中的像素进行捕获。如果进入大屏幕,它将被破坏。可能的重复我不认为你的评论中链接的问题与这个问题有关。我相信这个问题是重复的,谢谢你的回答#Asa我想在互联网上找到这个功能。我只想得到一个元素,而不是截图所有网页#疯狂,我读过你的主题,但我想在转到新url时自动捕获。您的示例中,它使用宽度和高度或监视器中的像素进行捕获。如果进入大屏幕,它将被破坏。请不要只发布代码作为答案,还要解释代码的作用以及如何解决问题。带有解释的答案通常更有帮助,质量更好,并且更有可能吸引更多的投票。请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。带有解释的答案通常更有帮助,质量更好,更容易吸引选票。
let imageElement = await driver.wait(until.elementLocated(By.xpath('//img')), 5000) // returns image element
let screenshot = await imageElement.takeScreenshot(false) // takes screenshot of image element

fs.writeFileSync('\path\to\target\file', screenshot, 'base64')