吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1201|回复: 8
收起左侧

[求助] 各位大佬,python的selenium如何图中的下拉框自动选成我想要的

[复制链接]
qianaonan 发表于 2022-10-18 22:48
25吾爱币
下拉框未选中时 微信截图_20221018223936.png 代码如图 微信截图_20221018224017.png
选中下拉选项时 微信截图_20221018223949.png 代码如图 微信截图_20221018224044.png
选中选项时 微信截图_20221018224539.png 代码如图 微信截图_20221018224105.png
就是想爬这个表格,但是这个下拉框如何选成自己想要的选项。

最佳答案

查看完整内容

ant design + react 确实比较花点时间 [mw_shl_code=python,false]from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC dr = webdriver.Firefox(executable_path='/home/aa/bin/geckodriver') dr.get('https://09x.ant.design/components/pagination/') elemen ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zach14c 发表于 2022-10-18 22:48
本帖最后由 zach14c 于 2022-10-19 16:29 编辑

ant design + react 确实比较花点时间

[Python] 纯文本查看 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

dr = webdriver.Firefox(executable_path='/home/aa/bin/geckodriver')
dr.get('https://09x.ant.design/components/pagination/')

element = WebDriverWait(dr, 10).until(
    EC.presence_of_element_located((By.ID, "components-pagination-demo-changer"))
)
demo_div = dr.find_element_by_id('components-pagination-demo-changer')
opt_btn_span = demo_div.find_elements_by_class_name('ant-select-arrow')[0]
opt_btn_span.click()
WebDriverWait(dr, 10).until(
    EC.visibility_of_element_located((By.CLASS_NAME, "ant-select-dropdown-menu-item"))
)
opt_menus = dr.find_elements_by_class_name('ant-select-dropdown-menu-item')
for opt_menu in opt_menus:
    if opt_menu.text == '40 条/页':
        dr.execute_script('arguments[0].click()', opt_menu)
by黑胡椒 发表于 2022-10-18 22:56
我只能说 基本上全部操作的 都可以 元素点+元素点击
BlueQAQ 发表于 2022-10-19 08:58
不知道是不是多个表,如果就是这一个表的话,看看前端代码里是不是能改一页显示数量,直接改成999999 复制一下就行。
狐白本白 发表于 2022-10-19 09:02
如果前段是直接改的数 那你直接请求对应网页就行了
chinaqin 发表于 2022-10-19 09:10
我的建议是: 1.找到点击下拉框的xpath  然后  利用 find_element_by_xpath  把下拉框显示出来;
  2. 再把下拉框里面的选项列出列,我遇见过的是标签: find_elements(by_tag_name,"li");
3.最好出来的就是一个列表 想要哪个选项就 .click
三滑稽甲苯 发表于 2022-10-19 10:32
找到对应元素用.click就行
MIAIONE 发表于 2022-10-19 10:34
为什么不用更强的Microsoft Playwright, 跟selenium一样, 可以xpath, click一起用, 比如你这个可以先waitfor等加载完成, 然后按照xpath单击,然后获取list的xpath再动态点击
xyoung519 发表于 2022-10-19 14:21
本帖最后由 xyoung519 于 2022-10-19 14:22 编辑

使用选择列表元素 | Selenium
https://www.selenium.dev/zh-cn/documentation/webdriver/support_features/select_lists/
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 06:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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