2017-01-17 57 views
0

我想用Selenium Python及其PhantomJS函數打印出此頁面第一個下拉菜單中的所有項目(http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I)。但它仍然返回無屬性錯誤消息。如何使用Selenium Python打印出下拉菜單的列表?

請幫忙。

我的代碼片斷是象下面這樣:

#!/usr/bin/env python 
#-*- coding: utf-8 -*- 

import re 

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.common.exceptions import StaleElementReferenceException 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.support.ui import Select 

from bs4 import BeautifulSoup 
from time import sleep 

link = 'http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I' 
driver = webdriver.PhantomJS() 
driver.set_window_size(1920, 1080) 
driver.get(link) 
sleep(.75) 

s = BeautifulSoup(driver.page_source, "html.parser", from_encoding='utf-8') 

# open maker layer 
next_elem = driver.find_element_by_xpath('//a[@title="제조사 선택"]') 
next_elem.click() 

# print maker 
next_elem = driver.find_elements_by_tag_name('li') 
print ("clicked maker", next_elem.text) 
sleep(.75) 

回答

1

next_elem包含元素的列表(因爲你已經使用find_elements_by_tag_name()方法 - 請注意「S」)不具有.text屬性。

,可以快速使用find_element_by_tag_name()匹配單個元素修復:

next_elem = driver.find_element_by_tag_name('li') 

但是,我想,你可能是指獲得可通過以下方式訪問廠商的名單:

makers = driver.find_elements_by_css_selector("#layer_maker ul.list li a") 
for maker in makers: 
    print(maker.text) 
+0

謝謝,alecxe。這就是我的意思。我非常感謝你的幫助。非常感謝。 –

相關問題