我正在尝试使用“selenium”包进行网站交互。我有一个问题理解这行做:与使用硒的网站进行交互
elem = driver.find_element_by_name("q")
,检查之前,该网站包含在标题中注明“蟒蛇”行。然后这条线以某种方式在网页上找到带有字母“q”的搜索文本框。包文档跳过了这一点,我错过了什么?
全码:
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
class PythonOrgSearch(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def test_search_in_python_org(self):
driver = self.driver
driver.get("http://www.python.org")
self.assertIn("Python", driver.title)
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
assert "No results found." not in driver.page_source
elem.send_keys(Keys.RETURN)
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()
到目前为止,我可以看到,我可以用查找特定的元素:
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector
但为什么“Q”明确指向搜索框中蟒蛇网站?
看看问题中的网站的HTML - 出于某种原因,你试图选择的框被命名为“q”。 – 2014-10-02 21:21:53