1

Why an error occurs when using phantomjs?

from selenium import webdriver
page_index = 1076
#driver = webdriver.Chrome() # no any errors.
driver = webdriver.PhantomJS() # will error.    
driver.get('https://www.nexusmods.com/mods/')    
driver.execute_script(f"window.RH_ModList.Send('page', '{page_index}');")

Result:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: {"errorMessage":"undefined is not an object (evaluating 'window.RH_ModList.Send')","request":{"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"118","Content-Type":"application/json;charset=UTF-8","Host":"127.0.0.1:57491","User-Agent":"Python http auth"},"httpVersion":"1.1","method":"POST","post":"{\"script\": \"window.RH_ModList.Send('page', '1076');\", \"args\": [], \"sessionId\": \"e7abf670-0132-11e9-ba9e-f19731f1c19f\"}","url":"/execute","urlParsed":{"anchor":"","query":"","file":"execute","directory":"/","path":"/execute","relative":"/execute","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/execute","queryKey":{},"chunks":["execute"]},"urlOriginal":"/session/e7abf670-0132-11e9-ba9e-f19731f1c19f/execute"}}
Screenshot: available via screen

1 Answer 1

2

Why an error occurs when using phantomjs?

It is because PhantomJS is not support ES6 Promise See the issue in Github here. if you do debugging you will see this error for that page

ReferenceError: Can't find variable: Promise

phantomjs://platform/bootstrap.js:87 2

ReferenceError: Can't find variable: $

Because PhantomJS abandoned there are no easy fix.

Not the answer you're looking for? Browse other questions tagged or ask your own question.