WebDriverException:消息:[(NS_ERROR_FAILURE)“位置:” JS frame :: chrome://marionette/content/proxy.js]与Selenium GeckoDriver通过Python

时间:2019-08-21 19:45:36

标签: python selenium firefox marionette geckodriver

我正在从一个网站下载多个报告。每个报告都有其自己的URL。某些网址加载正常,没有问题。

但是有一个URL会产生以下错误。除查询参数外,所有URL都具有相同的模式。如果我在浏览器中打开该URL,它将正常工作。

我正在使用Selenium和Firefox驱动程序。 enter image description here

下面是我的代码

if __name__ == "__main__":
firefox_options = Options()
#firefox_options.headless = True
driver = webdriver.Firefox(options=firefox_options, executable_path=firefox_driver_location)



logged_in = "no"
for query in sa360_query_array:
    print("query being processed is " + query )
    if  "270348" in query or "269756" in query:
        wait_time = 300
    else:
        wait_time = 15
    driver.get(query)
    print("Page wait time is " + str(wait_time))
    driver.implicitly_wait(300000)
    #print(driver.page_source)
    if logged_in !="yes":
        google_login(query,email_login,email_password) #This function logs into google account
        print("Sleeping 200 seconds")
        time.sleep(200)

    logged_in = "yes"

    #time.sleep(200)
    print("reading HTML")
    #print(driver.page_source)
    read_web = pd.read_html(driver.page_source)#The error occurs on this line

该错误也指什么?

1 个答案:

答案 0 :(得分:0)

此错误消息...

WebDriverException: Message: [Exception...  "Failure"  nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://marionette/content/proxy.js :: sendReply_ :: line 276"  data: no]

...表示牵线木偶在尝试读取/存储/复制page_source()时抛出了错误。

相关的HTML DOM / DOM Tree本可以帮助我们更好地调试问题。但是,问题似乎在于page_source()确实很大/很大,超过了牵线木偶可以处理的最大值。可能是您要处理的string更大。


解决方案

一种快速的解决方案是避免将page_source()传递给变量并将其打印出来以找出实际问题所在。

print(driver.page_source)

需要照顾的另一个方面是pd.read_html(),我不确定。


Outro

您可以在以下位置找到一些相关的讨论