python,selenium,chr​​omedriver'selenium.common.exceptions.WebDriverException:消息:u'chrome无法访问

时间:2014-02-15 19:51:51

标签: python selenium selenium-chromedriver

我正在使用此代码导航网页,使用selenium和chromedriver 2.9(也试过2.8但没有成功)...我得到这个错误,我想要的是测试显示在firefox iframe :)

firefox在iframe中支持图像链接没有问题,图像弹出很棒。但文字不会显示在iframe中。不确定为什么图像链接有效,但文本没有。

import os
import platform as _platform
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def pickbrowser(browserchoice):
    usrplatform = _platform.system()
    if browserchoice == "1":
        browser = webdriver.Firefox()

    elif browserchoice == "2":
        if usrplatform == "Linux":
            chromepath = os.path.abspath("Webdriver/Linux/86/chromedriver")
            os.environ["webdriver.chrome.driver"] = chromepath
            browser = webdriver.Chrome(chromepath)

        elif usrplatform == "Windows":
            chromepath = os.path.abspath("Webdriver/Windows/86/chromedriver.exe")
            print "checkpoint chrome, windows 1"
            os.environ["webdriver.chrome.driver"] = chromepath
            print "checkpoint chrome, windows 2"
            browser = webdriver.Chrome(chromepath)

        elif usrplatform == "darwin":
            chromepath = os.path.abspath("Webdriver/Mac/86/chromedriver")
            os.environ["webdriver.chrome.driver"] = chromepath
            browser = webdriver.Chrome(chromepath)

    elif browserchoice == "3":
        if usrplatform == "Linux":
            browser = webdriver.PhantomJS(os.path.abspath("Webdriver/Linux/86/phantomjs"))

        elif usrplatform == "Windows":
            browser = webdriver.PhantomJS(os.path.abspath("Webdriver/Windows/86/phantomjs.exe"))

        elif usrplatform == "darwin":
            browser = webdriver.PhantomJS(os.path.abspath("Webdriver/Mac/86/phantomjs"))

    elif browserchoice == "4":
        if usrplatform == "Windows":
            browser = webdriver.Ie(os.path.abspath("Webdriver/Windows/86/IEDriverServer.exe"))
    return browser

driver = pickbrowser(raw_input("which browser do you want to use\n 1. Firefox\n 2. Chrome\n 3. PhantomJS\n 4. Internet Explorer\nYour choice: "))
print "\ncheckpoint 1"
driver.get("https://www.chess.com/login")
print "checkpoint 2\n"

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "btnLogin")))
driver.find_element_by_name("c1").send_keys(raw_input("Username: "))
print "\ncheckpoint 2.1\n"
driver.find_element_by_name("loginpassword").send_keys(raw_input("Password: : "))
print "\ncheckpoint 2.2"
driver.find_element_by_id("btnLogin").click()
print "checkpoint 3\n"

driver.get(raw_input("Link to receivers send pm page: "))
print "\ncheckpoint 4\n"

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "c15")))
driver.find_element_by_name("c15").send_keys(raw_input("Subject line: "))
print "\ncheckpoint 5\n"

driver.switch_to_frame("tinymcewindow_ifr")
print "checkpoint 5.1"
driver.find_element_by_id("tinymce").clear()
print "checkpoint 5.2"
driver.switch_to_default_content()
print "checkpoint 6"

driver.switch_to_frame("tinymcewindow_ifr")
print "checkpoint 6.1\n"
driver.find_element_by_id("tinymce").send_keys(raw_input("Message: "))
print "\ncheckpoint 6.2"
driver.switch_to_default_content()
print "checkpoint 7"

driver.find_element_by_id("c16").click()

以下是从python脚本生成的错误消息。该脚本试图通过检查点,但随后会产生错误。我完全迷失了。

checkpoint chrome, windows 1

checkpoint chrome, windows 2

[2888:5992:0213/160704:ERROR:chrome_views_delegate.cc(176)] NOT IMPLEMENTED

[2888:5992:0213/160704:ERROR:desktop_root_window_host_win.cc(746)] NOT IMPLEMENT

ED

[2888:5992:0213/160704:ERROR:desktop_root_window_host_win.cc(746)] NOT IMPLEMENT

ED



checkpoint 1

checkpoint 2



Username: [5268:4808:0213/160720:ERROR:ipc_channel_win.cc(132)] pipe error: 109





checkpoint 2.1



Password: : [2888:5992:0213/160734:ERROR:desktop_root_window_host_win.cc(746)] N

OT IMPLEMENTED





checkpoint 2.2

checkpoint 3



Link to receivers send pm page: 

80

Traceback (most recent call last):

  File "/home/user/Dropbox/Python/chess.com/BFDtest.py", line 60, in <module>

  File "C:\Users\Derek\Dropbox\RK Resource 001\selenium\webdriver\remote\webdriv

er.py", line 176, in get

    self.execute(Command.GET, {'url': url})

  File "C:\Users\Derek\Dropbox\RK Resource 001\selenium\webdriver\remote\webdriv

er.py", line 164, in execute

    self.error_handler.check_response(response)

  File "C:\Users\Derek\Dropbox\RK Resource 001\selenium\webdriver\remote\errorha

ndler.py", line 164, in check_response

    raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.WebDriverException: Message: u'chrome not reachable

  (Session info: chrome=32.0.1700.107)
 (Driver info: chromedriver=2.9.248315,

platform=Windows NT 6.1 SP1 x86_64)'

1 个答案:

答案 0 :(得分:0)

我从你的代码中注意到你正在操纵TinyMCE。这个编辑器需要由JavaScript处理。 SO和Internet上有很多答案如何处理这个问题。这是一个很好的回答:Selenium and wordpress: New post test