当前位置: 首页 > 知识库问答 >
问题:

Selenium PhantomJS保存截图没有得到正确的页面

子车宏浚
2023-03-14

我有下面的Python代码来拍摄网页截图。它在大多数情况下都很有效,但当我试图打印

http://www.totalwine.com/wine/red-wine/pinot-noir/C/000018

我得到了一个不同的截图-不同于实际的页面(我得到正确的截图有时)。有人能帮忙吗。我已经附上了输出截图,我也得到了。请在浏览器上加载上面的链接,你会看到一个不同的页面。

def screenshot_util(url):
    browser = webdriver.PhantomJS(service_log_path='ghostdriver.log')
    browser.set_window_size(1024, 768)    
    browser.get(url)
    browser.save_screenshot('temp.png')
    print(browser.current_url)
    browser.quit()
    return

url_to_print = 'http://www.totalwine.com/wine/red-wine/pinot-noir/c/000018'
screenshot_util(url_to_print)

共有1个答案

钦楚青
2023-03-14

以编程方式单击弹出窗口上的yes按钮,然后像这样等待几秒钟:

from selenium import webdriver
from time import sleep

def screenshot_util(url):
    browser = webdriver.PhantomJS(service_log_path='ghostdriver.log')
    browser.set_window_size(1024, 768)
    browser.get(url)
    browser.find_element_by_id("btnYes").click()
    sleep(4)
    browser.save_screenshot('temp.png')
    print(browser.current_url)
    browser.quit()
    return

url_to_print = 'http://www.totalwine.com/wine/red-wine/pinot-noir/c/000018'
screenshot_util(url_to_print)

为了清晰起见,我添加到代码中的行是:

from time import sleep
...
    browser.find_element_by_id("btnYes").click()
    sleep(4)
 类似资料:
  • 我试图在一个网页中给出的表格的屏幕截图。和我在代码中提供的相同元素xpath,但是Ashot代码正在捕获其他位置的屏幕截图。 我也尝试过其他截图代码, 但它给了我错误,我可以通过阅读这个链接来修复:https://github.com/pazone/ashot/issues/93,然后我使用下面的代码: 请帮助,因为此代码正在给我网页某些随机部分的屏幕截图。我也试图捕获其他元素,但我再次没有得到正

  • 我正在尝试使用SeleniumWebDriver拍摄一个网站的截图,并将其保存在所需的位置。 下面的代码运行良好,但Selenium没有为我保存任何屏幕截图? 有人知道我如何让Selenium截图并保存到我的电脑吗?

  • 这个问题已经被问了无数次,但是没有一个真正解决保存时的旋转问题。 这是我最初如何保存一个位图到我的设备: 以上内容保存了。 然后我看到了这个答案,但问题是它将已经保存的位图旋转到正确的方向。例如,如果您想将设置为,则可以这样做。但是,如果我想共享位图,或者想在设备库中打开它,方向仍然不正确。然后,我将不得不执行与上面相同的过程-等。这将导致同样的问题。 如何将

  • 问题内容: 如标题所述,很简单:您可以仅使用Java命令来截取屏幕截图并保存吗?或者,我是否需要使用特定于操作系统的程序来截取屏幕截图,然后将其从剪贴板中拿出来? 问题答案: 你实际上可以用来“创建一个包含从屏幕读取的像素的图像”。然后,你可以将该映像写入磁盘上的文件。 我只是尝试了一下,整个过程最终像这样:

  • 尝试编译和链接JNI progam 然后我继续转到R,并将rJava包作为源代码安装,如下所示:,然后转到 然后,当我使用以下命令检查版本时:

  • 前端有没有办法实现页面截图?不是html-to-canvas那种实现,而是类似于windows上各种截图工具那样,直接截取屏幕上图像 目前搜到的全是html-to-canvas的方案