2017-01-31 51 views
0

我的目標是訪問特定網頁的js變量,並且我希望將其打印在terminal/cmd中以進行進一步處理,例如將輸出寫入文件。如何在python中使用selenium訪問警報框或控制檯輸出?

from selenium import webdriver 
with open("list_links.txt","rb") as fs: 
    data = fs.readlines() 
    for line in data: 
     print "checking for: ",line 
     baseurl = line 
     driver = webdriver.Chrome() 
     driver.set_window_size(140, 800) 
     driver.get(baseurl) 
     driver.execute_script("alert(someVariable)") 


其中txt文件由不同的環節,我打開每一個頁面和彈出這是給我在瀏覽器中輸出一個警告框。

一切工作正常,我只想讀取/訪問我在警報框中獲得的輸出。

SO,有沒有辦法做到這一點?

此外,如果有任何方式從console.log輸出文本中讀取相同,請分享。

回答

0

你可以嘗試以下辦法來得到一個警報文本

alert = driver.switch_to_alert() 
alert_text = alert.text 
+0

謝謝,它的工作原理! – bhansa

1

你可以得到的someVariable值,而不讀警報文本內容如下:

var_text = driver.execute_script(""" 
           var someVariable = "someValue"; 
           return someVariable; 
           """) 

print(var_text) # Output- "someValue" 
+0

謝謝你們,還有什麼方法可以訪問控制檯輸出嗎? – bhansa

+0

你可以嘗試檢查這個http://stackoverflow.com/questions/15462122/assign-console-log-value-to-a-variable,但我沒有親自嘗試,所以我不知道它是否可以適用於你的情況 – Andersson

相關問題