Python / Selenium:在Xpath中插入一个迭代器

小河芭芭拉

我正在尝试在Xpath上插入变量“ i”,但遇到了麻烦。

这是我的代码:

for i in range(len(results_nbr)):
    xpath = "//*[@id='w1']/div["
    xpath += int(i)
    xpath += "]/div/div[2]/h3"

    elem = driver.find_element_by_xpath(xpath)
    elem.click()
    time.sleep(1) 

我正在使用selenium,如果我在代码中包含以下变量,它将可以正常工作:

elem = driver.find_element_by_xpath('//*[@id="w1"]/div[1]/div/div[2]/h3')

请问我的代码有什么问题?我尝试了int(i)和str(i)具有相同的结果。

我感谢您的帮助。谢谢

杰森

第一点:使用字符串格式。Python中有很多可用的选项:

 - xpath = '//*[@id="w1"]/div[%s]/div/div[2]/h3' % i
 - xpath = '//*[@id="w1"]/div[{}]/div/div[2]/h3'.format(i)
 - xpath = f'//*[@id="w1"]/div[{i}]/div/div[2]/h3' # in Python 3.6 and later

第二点:在XPath中,索引从开始1所以div[0]不行 尝试

for i in range(1, len(results_nbr) + 1):
    ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Python中,如何在一个迭代器上进行迭代,然后在另一个迭代器上进行迭代?

如何在Python中.write()两个项目,一个零和一个迭代器?

关于检查对象是否为Python中的迭代器的一个示例的困惑

Python迭代器/一个衬里用于循环

构建一个基本的Python迭代器

如何在python中创建一个迭代器类,它将以相反的顺序迭代输入?

通过python中的行组迭代一个函数

你可以在 python 中迭代一个列表吗?

For循环仅迭代Python中的最后一个元素

避免在 Selenium Python 中为每个实例打开一个新浏览器

如何创建一个迭代器,该迭代器生成的项目在python中没有哪个项目的单个字符表示n次以上?

Python数据整理:遍历DataFrame中的值,并检查当前迭代器是否与前一个匹配

在整列python中插入一个excel公式

在mysql中插入一个python列表

Selenium for Python:通过XPath获取与另一个元素共享的节点的text()

Python / Selenium webdriver。在页面上找到一个元素并打印/返回它的xpath

Python Selenium xPath从div类中选择一个相对值

一次迭代 n 个 python 迭代器

用一个迭代器将列表分成两部分的Python方式

从迭代器中排除第一个元素(Python)

为什么boost :: python迭代器会跳过第一个元素?

为什么我的for循环在python列表迭代器之后只有一个结果?

在python中共享一个迭代器的两个数据结构

python中的嵌套For循环,它在第一个循环的迭代器处开始第二个循环

Python Selenium:如何重用另一个类中的一个类

python迭代一个元组中的两个列表并比较tem之间的整数

在Python中按(n个)块迭代迭代器?

在Python中按(n个)块迭代迭代器?

迭代Python列表中的连续元素,以使最后一个元素与第一个元素结合