首页 新闻 搜索 专区 学院

python+selenium怎么将变量放入到执行语句中

0
悬赏园豆:5 [已解决问题] 解决于 2019-10-29 17:57

怎么将i插入到[]中,使得div[i]、li[i]随i增加而变化。

for i in range(0,4):
web.find_element_by_xpath('//[@class="inner"]/div[1]').click()
time.sleep(1.5)
web.find_element_by_xpath('//
[@class="el-scrollbar"]/div/ul/li[1]').click()
time.sleep(1.5)

失笑的主页 失笑 | 初学一级 | 园豆:197
提问于:2019-10-29 14:47
< >
分享
最佳答案
0

这种方法可行
for i in range(0,4):
div_str='//[@class="inner"]/div[%d]'%i
web.find_element_by_xpath(div_str).click()
time.sleep(1.5)
li_str='//
[@class="el-scrollbar"]/div/ul/li[%d]'%i
web.find_element_by_xpath(li_str).click()
time.sleep(1.5)

失笑 | 初学一级 |园豆:197 | 2019-10-29 17:35
其他回答(2)
0
for i in range(0,4):
    web.find_element_by_xpath(f'//[@class="inner"]/div[{i}]').click()
    time.sleep(1.5)
    web.find_element_by_xpath(f'//[@class="el-scrollbar"]/div/ul/li[{i}]').click()
    time.sleep(1.5)

#不过你这咋用time.sleep.........我的天
收获园豆:5
小小咸鱼YwY | 园豆:1785 (小虾三级) | 2019-10-29 16:25

谢谢,time.sleep有什么问题吗?没操作一步等一下,怕东西未加载完全。import time

支持(0) 反对(0) 失笑 | 园豆:197 (初学一级) | 2019-10-29 16:29

@失笑: 不是啊,假设你网速蛮你time sleep有啥用,程序不就崩了,https://www.cnblogs.com/pythonywy/p/11284800.html,看这

支持(0) 反对(0) 小小咸鱼YwY | 园豆:1785 (小虾三级) | 2019-10-29 16:31

@小小咸鱼YwY: 行,我看看

支持(0) 反对(0) 失笑 | 园豆:197 (初学一级) | 2019-10-29 16:33

哥,没用啊
for i in range(1,3):
web.find_element_by_xpath('//[@class="type"]/span[{i}]').click()
a = web.find_element_by_xpath('//
[@class="type"]/span[{i}]').text
if a=="全部作品":
for j in range(1,5):
web.find_element_by_xpath('//[@class="inner"]/div[{j}]').click()
else:
for j in range(1,4):
web.find_element_by_xpath('//
[@class="inner"]/div[{j}]').click()

报错信息:
File "D:/pycharm/selenium/bestu.py", line 172, in <module>
web.find_element_by_xpath('//*[@class="type"]/span[{i}]').click()

支持(0) 反对(0) 失笑 | 园豆:197 (初学一级) | 2019-10-29 16:44

@失笑: F你是不是漏了....

支持(0) 反对(0) 小小咸鱼YwY | 园豆:1785 (小虾三级) | 2019-10-29 16:45

@小小咸鱼YwY: 哦,哈哈哈哈,没注意到,我再试试

支持(0) 反对(0) 失笑 | 园豆:197 (初学一级) | 2019-10-29 16:47

@小小咸鱼YwY: 不行,报错了,爆红,uploading-image-382913.png

支持(0) 反对(0) 失笑 | 园豆:197 (初学一级) | 2019-10-29 16:52

@小小咸鱼YwY: 加了f,之后,f下面直接红线

支持(0) 反对(0) 失笑 | 园豆:197 (初学一级) | 2019-10-29 16:55

@失笑: 复制粘贴会吗.......

支持(0) 反对(0) 小小咸鱼YwY | 园豆:1785 (小虾三级) | 2019-10-29 17:03

@小小咸鱼YwY:

支持(0) 反对(0) 失笑 | 园豆:197 (初学一级) | 2019-10-29 17:12

@失笑: 你python几的

支持(0) 反对(0) 小小咸鱼YwY | 园豆:1785 (小虾三级) | 2019-10-29 17:28

@小小咸鱼YwY:
找到一种方法了:
for i in range(1,3):
div_str='//[@class="inner"]/div[%d]'%i
web.find_element_by_xpath(div_str).click()
a = web.find_element_by_xpath(div_str).text
if a=="全部作品":
for j in range(1,5):
div_str = '//
[@class="inner"]/div[%d]'%j
web.find_element_by_xpath(div_str).click()
else:
for j in range(1,4):
div_str = '//*[@class="inner"]/div[%d]'%j
web.find_element_by_xpath(div_str).click()

我用的是python 3.7

支持(0) 反对(0) 失笑 | 园豆:197 (初学一级) | 2019-10-29 17:34

这是python3,方式给你占位符的吧

for i in range(0,4):
    web.find_element_by_xpath('//[@class="inner"]/div[%s]'%i).click()
    time.sleep(1.5)
    web.find_element_by_xpath('//[@class="el-scrollbar"]/div/ul/li[%s]'%i).click()
    time.sleep(1.5)
支持(0) 反对(0) 小小咸鱼YwY | 园豆:1785 (小虾三级) | 2019-10-29 17:34
0

'//[@class="inner"]/div[{}]'.format(i)

这个是关于python文本格式化的知识

盈盈的月儿 | 园豆:211 (菜鸟二级) | 2019-11-05 11:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册