我正在使用 selenium 和 PhantomJS 进行测试。我遵循了 Selenium 的简单用法,但是 send_keys 不适用于 PhantomJS,它适用于 Firefox。为什么?我必须使用button.click()
反而?
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.PhantomJS()
driver.get("http://www.python.org/")
elem = driver.find_element_by_id("q")
elem.clear()
elem.send_keys("python")
elem.send_keys(Keys.RETURN)
# button = driver.find_element_by_id('submit')
# button.click()
print driver.title
print driver.page_source
driver.close()
我高度怀疑这只是时间问题。
硒的click()
如果点击后重定向,将等待页面加载,而send_key()
不等。 (PhantomJS 是无头的,比 Firefox 更快)
请尝试添加一些睡眠,例如time.sleep(5)
after elem.send_keys(Keys.RETURN)
, 前print driver.title
,看看是否能得到你想要的结果。
在实际的测试项目中,你只需要使用WebDriverWait直到driver.title
等于你想要的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)