我正在使用此代码导航网页,使用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)'
答案 0 :(得分:0)
我从你的代码中注意到你正在操纵TinyMCE。这个编辑器需要由JavaScript处理。 SO和Internet上有很多答案如何处理这个问题。这是一个很好的回答:Selenium and wordpress: New post test