共有41个类别复选框,12个可见,其余为隐藏,需要单击“显示更多”以显示 隐藏的复选框
此代码 这样做::1-loop>&燃气轮机;2单击“显示更多信息,如果我<=12>&燃气轮机;3单击复选框
# -*- coding: utf-8 -*-
import time
from selenium import webdriver
driver = webdriver.Chrome(executable_path='C:\\Users\\Compu City\\Desktop\\chromedriver.exe')
driver.get('https://www.amazon.com/international-sales-offers/b/?ie=UTF8&node=15529609011&ref_=nav_navm_intl_deal_btn')
time.sleep(10)
res = driver.execute_script("return document.documentElement.outerHTML")
i=0
while i <= 41 :
if(i <=12):
driver.find_element_by_css_selector('#widgetFilters > div:nth-child(1) > div.a-row.a-expander-container.a-expander-inline-container > a > span').click()
driver.find_elements_by_css_selector('.a-expander-container .a-checkbox label .a-label')[i].click()
driver.implicitly_wait(2)
time.sleep(2)
i+=1
问题是:代码在12个复选框中运行良好,然后单击ShowMore,然后只单击第一个复选框NO.13,然后得到这个错误
D:\python neww>aaa.py
DevTools listening on ws://127.0.0.1:59799/devtools/browser/ac2188e0-10e3-493b-9d91-614731f8d135
Traceback (most recent call last):
File "D:\python neww\aaa.py", line 14, in <module>
driver.find_elements_by_css_selector('.a-expander-container .a-checkbox label .a-label')[i].click()
IndexError: list index out of range
我搜索了很多关于selution的信息,发现echeckbox没有加载,但是当change.click()with.text时
我得到所有的复选框标签名称,所以它们如何不加载
下面是一个简单而甜蜜的脚本,它将起作用
css选择器的主要问题是,html有三种结构
第一个12的第一个结构复选框
单击“显示更多”后,第一个复选框显示2秒
第三个复选框,当单击“显示更多”后的第一个复选框时,所有结构都将更改,并将包含所有复选框
(我没有使用第三部分,因为它会使代码变得很长,我想缩短代码)
所以试试这段代码,点击复选框后,你需要点击清除,所以我认为这段代码会很有用
css选择器的问题 试试这个代码
相关问题 更多 >
编程相关推荐