各位大佬,python的selenium如何图中的下拉框自动选成我想要的
下拉框未选中时代码如图选中下拉选项时代码如图
选中选项时代码如图
就是想爬这个表格,但是这个下拉框如何选成自己想要的选项。 本帖最后由 zach14c 于 2022-10-19 16:29 编辑
ant design + react 确实比较花点时间
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')
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.click()', opt_menu)
我只能说 基本上全部操作的 都可以 元素点+元素点击 不知道是不是多个表,如果就是这一个表的话,看看前端代码里是不是能改一页显示数量,直接改成999999 复制一下就行。 如果前段是直接改的数 那你直接请求对应网页就行了 我的建议是: 1.找到点击下拉框的xpath然后利用 find_element_by_xpath把下拉框显示出来;
2. 再把下拉框里面的选项列出列,我遇见过的是标签: find_elements(by_tag_name,"li");
3.最好出来的就是一个列表 想要哪个选项就 .click 找到对应元素用.click就行 为什么不用更强的Microsoft Playwright, 跟selenium一样, 可以xpath, click一起用, 比如你这个可以先waitfor等加载完成, 然后按照xpath单击,然后获取list的xpath再动态点击 本帖最后由 xyoung519 于 2022-10-19 14:22 编辑
使用选择列表元素 | Selenium
https://www.selenium.dev/zh-cn/documentation/webdriver/support_features/select_lists/
页:
[1]