2017-08-04 84 views
0

我正在玩Selenium來獲取網站截圖以安全地查看它們。用戶輸入產生沒有結果的空白文件

我發現和調整的原始代碼就像這樣並且有效。

from selenium import webdriver 
br = webdriver.PhantomJS() 
br.get('http://www.google.com') 
br.save_screenshot('screenshot.png') 
br.quit 

它給你的網站

我想獲得用戶的輸入,使我沒有足夠的VI文件加班,我需要這樣的URL的屏幕截圖的截圖是我改變了代碼太。

#!/usr/bin/python 
import re 
import sys 
from selenium import webdriver 
br = webdriver.PhantomJS() 
br.get_user_input =raw_input('Enter URL:') 
br.save_screenshot('screenshot.png') 
br.quit 

現在要求的網址,你輸入它在程序運行和完成,甚至創建screenshot.png文件,但它的空白

+0

行,所以我能得到它的幫助工作由我一個人跟她的工作是真棒這裏修復#!的/ usr/bin中/ Python的 進口重新 進口SYS 硒進口的webdriver BR =的webdriver .PhantomJS() user_input = raw_input('Enter URL:')br.get(user_input) br.save_screenshot('screenshot.png') br.quit – user1596502

回答

0

嘗試使用Chrome Canary版(如果你需要模擬瀏覽器)。你不必使用硒。

make_screen = '''#!/usr/bin/env bash 
    test -f ./chrome-linux/chrome && echo "chrome exists" || unzip chrome-linux.zip 
    ./chrome-linux/chrome --headless --disable-gpu --virtual-time-budget=7000 --hide-scrollbars --screenshot=dir/screens/{screen_prod}.png --window-size=1200,2000 {link_prod}'''.format(screen_prod = screen_prod, link_prod = link_prod) 
0

這裏是回答你的問題:

。在你的代碼中的小bug。你沒有用你的WebDriver實例br調用get()方法。

作爲一個解決方案,(爲了避免Law of Demeter)我把這條線分成了兩條。將用戶的url作爲第一行的輸入。在下一行中通過url作爲get()方法的參數。接下來,它需要一個適當的快照並將其保存在Screenshots子目錄中。這裏是工作的代碼塊:

from selenium import webdriver 
br = webdriver.PhantomJS(executable_path="C:\\Utility\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe") 
user_input = input('Enter URL : ') 
br.get(str(user_input)) 
br.save_screenshot('./Screenshots/my_next_screenshot.png') 
br.quit 

我的控制檯上的輸出是:

Enter URL : http://google.com 
Process finished with exit code 0 

讓我知道如果這個回答你的問題。