鱼C论坛

 找回密码
 立即注册
查看: 5576|回复: 9

python获取下拉菜单的所有选项

[复制链接]
发表于 2015-12-10 14:22:43 | 显示全部楼层 |阅读模式
18鱼币
求指导,一个下拉菜单中,我怎样用python获取他所有的选项的元素
我只想用py写个自动化的脚本,想获取这个下拉菜单的所有选项~~


#找到选项的元素
paixu = driver.find_element_by_css_selector("body > div.wrapper > div.main-container.col2-left-layout  > div:nth-child(1) > select")
paixu.click()

allselect = select(paixu).options

rd = random.Random().choice(allselect[:])

Ps:我自己写了一个,然而一直报错

最佳答案

查看完整内容

也是使用options方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-10 14:22:44 | 显示全部楼层
也是使用options方法

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
三木 + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-10 14:26:13 | 显示全部楼层
求大神解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-10 14:35:51 | 显示全部楼层
求大神指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-10 17:12:54 | 显示全部楼层
请将将完整的代码及报错信息提供下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-11 09:12:34 | 显示全部楼层
小甲鱼 发表于 2015-12-10 17:12
请将将完整的代码及报错信息提供下。

完整代码:

import os
import time
import select
import json
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException


driver = webdriver.Firefox()
driver.get("http://23.91.96.217:8041/")
driver.implicitly_wait(5)
driver.maximize_window()


#注册
driver.find_element_by_css_selector("body > div > div > div.header_container > div > div.header_greeting > ul > li:nth-child(2) > a").click()

#读取文件
soucre = open('E:\\selenium_python\\usernamedata.txt','r')
name = soucre.read()
soucre.close()

psd = open("E:\\selenium_python\\passworddata.txt","r")
pd = psd.read()
psd.close()

driver.find_element_by_id("email_address").clear()
driver.find_element_by_id("email_address").send_keys(name)

driver.find_element_by_id("password").clear()
driver.find_element_by_id("password").send_keys(pd)

driver.find_element_by_id("confirmation").clear()
driver.find_element_by_id("confirmation").send_keys(pd)

driver.find_element_by_css_selector("#validate_border > div > div.buttons-set > button > span > span").click()

print("登录成功,跳转至个人中心")


#我的订单
driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-left.sidebar > div > div > ul > li:nth-child(1) > a").click()
#个人信息
driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-left.sidebar > div > div > ul > li:nth-child(2) > a").click()
#收货地址
driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-left.sidebar > div > div > ul > li:nth-child(3) > a").click()
#我的优惠券
driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-left.sidebar > div > div > ul > li:nth-child(4) > a").click()

driver.find_element_by_css_selector("body > div.wrapper > div > div > div.header_container > div > div.header_logo > a").click()
#选购商品

driver.find_element_by_id("searchterm").clear()
driver.find_element_by_id("searchterm").send_keys("纽乐")
driver.find_element_by_css_selector("body > div > div > div.header_container > div > div.content_head > div > div.text_search > form > input.asset").click()


print("查找商品")
#随即排序
#找到选项的元素
paixu = driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-main > div.toolbar-bottom.clearfix > div > div:nth-child(1) > select")
paixu.click()#运行到此停止

#options方法
allselect = select(paixu).options

#random.Random().choice
rd = random.Random().choice(allselect[:])


#用Select.select_by_value方法选择该等于该值的选项
select(paixu).select_by_value(rd.get_attribute("value"))




SP1 = driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-main > div.toolbar-bottom.clearfix > div > div:nth-child(1) > select > option:nth-child(1)")
SP2 = driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-main > div.toolbar-bottom.clearfix > div > div:nth-child(1) > select > option:nth-child(2)")
SP3 = driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-main > div.toolbar-bottom.clearfix > div > div:nth-child(1) > select > option:nth-child(3)")
SP4 = driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-main > div.toolbar-bottom.clearfix > div > div:nth-child(1) > select > option:nth-child(4)")
SP5 = driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-main > div.toolbar-bottom.clearfix > div > div:nth-child(1) > select > option:nth-child(5)")


paixu1 = [SP1,SP2,SP3,SP4,SP5]
allselect3 = Select(paixu3)
rd1 = random.Radndom().choice(paixu1[:])
Select(paixu1).select_by_value(rd1.get_attribute("value"))











报错信息:

登录成功,跳转至个人中心
查找商品
Traceback (most recent call last):
  File "E:\自动化脚本\NP走流程.py", line 75, in <module>
    allselect = select(paixu).options
TypeError: 'module' object is not callable
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-11 09:14:07 | 显示全部楼层
小甲鱼 发表于 2015-12-10 17:12
请将将完整的代码及报错信息提供下。

完整代码(以此为准)~~
import os
import time
import select
import json
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException




driver = webdriver.Firefox()




driver.get("http://23.91.96.217:8041/")
driver.implicitly_wait(5)
driver.maximize_window()




#注册
driver.find_element_by_css_selector("body > div > div > div.header_container > div > div.header_greeting > ul > li:nth-child(2) > a").click()


#读取文件
soucre = open('E:\\selenium_python\\usernamedata.txt','r')
name = soucre.read()
soucre.close()

psd = open("E:\\selenium_python\\passworddata.txt","r")
pd = psd.read()
psd.close()

driver.find_element_by_id("email_address").clear()
driver.find_element_by_id("email_address").send_keys(name)

driver.find_element_by_id("password").clear()
driver.find_element_by_id("password").send_keys(pd)

driver.find_element_by_id("confirmation").clear()
driver.find_element_by_id("confirmation").send_keys(pd)

driver.find_element_by_css_selector("#validate_border > div > div.buttons-set > button > span > span").click()

print("登录成功,跳转至个人中心")


#我的订单
driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-left.sidebar > div > div > ul > li:nth-child(1) > a").click()
#个人信息
driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-left.sidebar > div > div > ul > li:nth-child(2) > a").click()
#收货地址
driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-left.sidebar > div > div > ul > li:nth-child(3) > a").click()
#我的优惠券
driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-left.sidebar > div > div > ul > li:nth-child(4) > a").click()

driver.find_element_by_css_selector("body > div.wrapper > div > div > div.header_container > div > div.header_logo > a").click()
#选购商品

driver.find_element_by_id("searchterm").clear()
driver.find_element_by_id("searchterm").send_keys("纽乐")
driver.find_element_by_css_selector("body > div > div > div.header_container > div > div.content_head > div > div.text_search > form > input.asset").click()


print("查找商品")
#随即排序
#找到选项的元素
paixu = driver.find_element_by_css_selector("body > div.wrapper > div > div > div.main-container.col2-left-layout > div > div.col-main > div.toolbar-bottom.clearfix > div > div:nth-child(1) > select")
paixu.click()#运行到此停止

#options方法
allselect = select(paixu).options

#random.Random().choice
rd = random.Random().choice(allselect[:])


#用Select.select_by_value方法选择该等于该值的选项
select(paixu).select_by_value(rd.get_attribute("value"))





报错信息:
>>> ================================ RESTART ================================
>>>
登录成功,跳转至个人中心
查找商品
Traceback (most recent call last):
  File "E:\自动化脚本\NP走流程.py", line 75, in <module>
    allselect = select(paixu).option
TypeError: 'module' object is not callable
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-11 19:41:35 | 显示全部楼层
提示 'module' object is not callable 一般是多加了括号,去掉()再试试?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-27 15:37:54 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-27 19:44:52 | 显示全部楼层
python获取下拉菜单的所有选项

这段代码要好好研究
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 17:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表