如何在python中使用selenium访问警报框或控制台输出?

时间:2017-01-31 12:53:16

标签: python python-2.7 selenium-webdriver

我的目标是访问特定网页的js变量,我想在terminal / cmd中打印它以进一步处理,例如将输出写入文件。

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文件包含不同的链接,我打开每个页面并弹出一个警告框,它在浏览器中给我输出。

一切正常,我只想阅读/访问警报框中的输出

那么,有没有办法做到这一点?

如果有任何方法从console.log输出文本中读取相同的内容,请分享。

2 个答案:

答案 0 :(得分:1)

如果没有阅读警报的文字内容,您可以获得someVariable的价值,如下所示:

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

print(var_text) # Output- "someValue"

答案 1 :(得分:0)

您可以尝试以下方式获取提醒文字

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