首页 文章

PhantomJS exe放在哪里?

提问于
浏览
0

我正在尝试将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 回答

  • 0

    您可以将 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")
    
  • 0

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

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

    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)
    
  • 0

    从你的错误:

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

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

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

    service_log_path=os.path.devnull
    

    到函数 webdriver.PhantomJS() .

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

相关问题