2017-03-10 27 views
1

我想创建一个最简单的程序在Python与硒。从字面上看,它只是在谷歌上查找“玫瑰花蕾”。它使返回元素不可见下面的代码(在参考了搜索按钮!):基于Webdriver的*简单*程序不工作?(元素不可见(是的,这是!))

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
import unittest 

class LoginTest(unittest.TestCase): 

    def setUp(self): 
     self.driver = webdriver.Chrome() 
     self.driver.get("http://www.google.com/") 
    def test_login(self): 
     driver = self.driver 
     Query = "q" 
     Search = "//input[@value='Google Search']" 
     Life = "Rosebud" 

     QI = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_name(Query)) 
     SI = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(Search)) 

     QI.clear() 
     QI.send_keys(Life) 
     SI.click() 

    def tearDown(self): 
     self.driver.quit()` 
+0

当您开始在google.com上的搜索框中输入内容时,您是否看到该搜索按钮会发生什么?这就是为什么它不可见。 您可能需要在发送密钥后找到搜索按钮,并使用此选择器'“//按钮[@ value ='搜索']”'或'“//按钮[@ value ='搜索']/span” '。让我知道这是否有效,我会作为答复发布。 这将找到附加到搜索栏的按钮,因为其他按钮消失。 – mrfreester

+0

谢谢,这工作!事实上,我在另一个更复杂的硒程序中使用它,所以谢谢。 –

+0

好听!如果你不介意接受,我继续发布并作为答案发布。 – mrfreester

回答

0

当你开始在google.com搜索框中输入,页面可以改变那些按钮消失。

您可能需要在发送密钥后找到搜索按钮,并在搜索框中使用搜索图标的选择器。类似这样的:

Query = "q" 
Search = "//button[@value='Search']" # or ""//button[@value='Search']/span" 
Life = "Rosebud" 

QI = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_name(Query)) 

QI.clear() 
QI.send_keys(Life) 

SI = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(Search)) 
SI.click() 
相关问题