selenium PhantomJS send_keys不起作用

pig*_*fly 5 python selenium phantomjs selenium-webdriver

我正在使用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()
Run Code Online (Sandbox Code Playgroud)

Yi *_*eng 7

我非常怀疑这只是时间问题.

click()如果在点击后重定向,Selenium 将等待页面加载,send_key()而不等待.(PhantomJS无头,比Firefox快)

请尝试添加一些像睡眠time.sleep(5)elem.send_keys(Keys.RETURN),前print driver.title,看看你能得到你想要的结果.

在实际测试项目中,您只需要使用WebDriverWait,直到driver.title等于您想要的值.

  • 我刚遇到同样的问题.是的,这是一个计时问题,但仍然Keys.RETURN对我不起作用,我需要使用Keys.ENTER.我从https://github.com/detro/ghostdriver/issues/249得到了这个想法 (4认同)