2016-02-25 283 views
1

我一直堅持試圖點擊href =「javascript:void(0);」在頁面上。Selenium和Python無法單擊href =「javascript:void(0);」與.click()

我的問題是,我無法使用硒選擇這個,我的最終目標是點擊一個。該頁面已完全加載,這就是頁面上的所有鏈接都具有href。

我的代碼是這樣的:

a = soup.find_all('a') 
for names in a: 
    try: 
     print (names['href']) 
     if names['href'] == "javascript:void(0);": 
      print "IM IN HUR" 
      names.click() 
      break 
    except: 
     continue 

但 「name.click()」 語句永遠works.I沒有發現任何方式點擊的javascript:無效(0)。任何幫助將非常感激。

+1

你必須使用Selenium WebDriver與網絡瀏覽器交互。 Beautiful Soup是一個用於解析HTML/XML的Python包,它不能與Web瀏覽器交互。你能告訴我們打開瀏覽器並導航到網站的代碼嗎? – Buaban

+0

@Buaban我使用硒以及: 瀏覽器= webdriver.Chrome() browser.get(URL) 後來我做什麼,我做以上: 湯= BeautifulSoup(browser.page_source, 'LXML') 一個= soup.find_all( 'A') 爲名稱在一個: 嘗試: 打印名[ '的href'] 如果名稱[ '的href'] == 「的javascript:無效(0);」: 打印「IM in HUR」 names.click() break 除外: continue – Pierpressure

+0

names ['href']。 click()不正確。它是xml節點的集合,所以它沒有click()方法。 – Buaban

回答

1

您必須使用Selenium WebDriver與網絡瀏覽器進行交互。您的變量names是Beautiful Soup的一個對象,它是解析HTML/XML的Python包,它不能與Web瀏覽器交互。試試下面的代碼:

aElements = browser.find_elements_by_tag_name("a") 
for name in aElements: 
    if(name.get_attribute("href") is not None and "javascript:void" in name.get_attribute("href")): 
     print("IM IN HUR") 
     name.click() 
     break 
相關問題