2013-10-07 4 views
2

Я пытаюсь щелкнуть по первому результату результата google. Вот мой код , где я вхожу в chennai craiglist, который читается из csv-файла. Поэтому я уверен, что первая ссылка, которая приходит в органическом результате, будет chennai.craiglist.org. Но я не уверен, как это сделать.Как нажать на первый результат в google, используя selenium python

from selenium import webdriver 
    from selenium.webdriver.common.by import By 
    from selenium.webdriver.support.ui import Select 
    from selenium.common.exceptions import NoSuchElementException 
    import unittest, time, re 

    class Browse(unittest.TestCase): 
    def setUp(self): 
    self.driver = webdriver.Firefox() 
    self.driver.implicitly_wait(30) 
    self.base_url = "http://google.com/" 

    filename = 'test.csv' 
    line_number = 1 
    with open(filename, 'rb') as f: 
     mycsv = csv.reader(f) 
     mycsv = list(mycsv) 
     self.cityname=mycsv[line_number][0] 
     self.username=mycsv[line_number][1] 
     self.password=mycsv[line_number][2] 
     self.verificationErrors = [] 

def test_browse(self): 
    driver = self.driver 
    driver.get(self.base_url + "/") 
    driver.find_element_by_id("gbqfq").send_keys(self.cityname) 

Я хочу знать, что должно произойти после этой строки?

UPDATE

сейчас я даю как

driver.find_elements_by_xpath(".//*[@id='rso']//div//h3/a")[:1].click() 

Я не уверен, если это будет работать или нет.

ответ

5

xpath Вы выбрали 'ok', но, вероятно, не самый лучший.

result = driver.find_elements_by_xpath("//ol[@id="rso"]/li")[0] //make a list of results and get the first one 
result.find_element_by_xpath("./div/h3/a").click() //click its href 
+0

+1 для показа, что вы также можете выполнить поиск в уже инициализированном веб-элементе –

Смежные вопросы