PhantomJS exe放在哪里?

我正在尝试将PhantomJS与Selenium和Python一起使用 .

我的理解是:

我将不得不使用Selenium包编写Python脚本,该包将与Selenium交互以在PhantomJS WebDriver上运行以自动化Web应用程序测试 .

我安装了以下内容:

  • Python v3.5.1 .

  • Selenium使用 pip install selenium v3.7.0 .

  • PhantomJS v2.1.1

与此同时,我使用Chrome WebDriver将其放置在PATH中进行了测试,并且执行时没有错误 . 以下是我使用chrome webdriver打开google.com的脚本 .

from selenium import webdriver

driver = webdriver.Chrome() # or add to your PATH
driver.get('https://google.com/')

Using PhantomJS:

from selenium import webdriver

url = "http://www.google.com"
path_phantom = r'H:\phantomjs\bin\phantomjs.exe'

driver = webdriver.PhantomJS(executable_path=path_phantom)
driver.get(url)
driver.save_screenshot(r'H:\out.png')
driver.quit()

Errors:

回溯(最近一次调用最后一次):文件“C:\ Users \ acer \ Desktop \ testing \ openYoutube.py”,第5行,在driver = webdriver.PhantomJS()文件“C:\ Users \ acer \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ site-package s \ selenium \ webdriver \ phantomjs \ webdriver.py“,第51行,在init log_path = service_log_path中)文件”C:\ Users \ acer \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ site-package s \ selenium \ webdriver \ phantomjs \ service.py“,第50行,在init service.Service.init中(self,executable_path,port = port,log_file = open(log _path) ,'w'))PermissionError:[Errno 13]权限被拒绝:'ghostdriver.log'

我错放了PhantomJS exe或者错过任何一步吗?

回答(3)

3 years ago

您可以将 PhantomJS v2.1.1 二进制文件放在系统中的任何位置,并使用以下代码块:

from selenium import webdriver

url = "http://www.url.com.br/contact.asp"
path_phantom = r'C:\your_path\phantomjs-2.1.1-windows\bin\phantomjs.exe'

driver = webdriver.PhantomJS(executable_path=path_phantom)
driver.set_window_size(1400,1000)
driver.get(url)

更新:

请考虑以下几点并尝试以下代码块和调试消息:

  • 运行 CCleaner 工具以清除系统中的所有 OS 家务 .

  • 您可以选择 System Reboot .

  • 尝试在同一驱动器上保留 Python 应用程序, WebBrowser 二进制文件和 WebDriver 二进制文件,即 phantomjs.exe .

from selenium import webdriver

url = "http://www.google.com"
path_phantom = r'C:\Utility\phantomjs-2.1.1-windows\bin\phantomjs.exe'

driver = webdriver.PhantomJS(executable_path=path_phantom)
print("PhantomJS browser invoked")
driver.get(url)
print("Browser Initialized")
driver.save_screenshot("C://Utility//out.png")
driver.quit()
print("Browser Closed")

3 years ago

问题似乎与日志文件有关 .

更改日志文件的路径解决了这个问题 .

path_phantom = r'H:\phantomjs\bin\phantomjs.exe'
log_path=r'H:\ghostdriver.log'  #changed path to a temporary file.
# service_log_path is required to change path of log file.
driver = webdriver.PhantomJS(executable_path=path_phantom,service_log_path=log_path)

3 years ago

从你的错误:

PermissionError:[Errno 13]权限被拒绝:'ghostdriver.log

似乎它尝试创建此文件 ghostdriver.log 但由于权限而失败 .

正如in this answer建议的那样,尝试添加参数

service_log_path=os.path.devnull

到函数 webdriver.PhantomJS() .

或者确保它能够创建文件 .