繁体   English   中英

如何使用Selenium Python打印出下拉菜单列表?

[英]How can I print out list of drop down menu using Selenium Python?

我正在尝试使用Selenium Python及其PhantomJS函数在此页面的第一个下拉菜单( http://www.bobaedream.co.kr/cyber/Cyber​​Car.php?gubun=I )中打印所有项目。 但是它仍然返回No Attribute错误消息。

请帮忙。

我的代码段如下所示:

#!/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)

next_elem包含不具有.text属性的元素列表 (因为您使用过find_elements_by_tag_name()方法-注意“ s”)。

您可以使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM