selenium-webdriver - Selenium 循环链接
问题描述
在 selenium 中,在 python 中,我必须遍历 Jira1、jira2、jira3 链接
for i in range(1,4):
driver.find_element(By.XPATH,"//a[text()='Jira']+/str(i)").click()
它给了我一个错误 NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//a[text()='Jira+str(i)']"} (会话信息:chrome=91.0.4472.77)
我该如何解决
解决方案
要在构建 XPath 时使用变量,您应该正确插入该变量,如 @Martheen 正在评论。
所以代替:
driver.find_element(By.XPATH,"//a[text()='Jira']+/str(i)").click()
用这个:
driver.find_element(By.XPATH,"//a[text()='Jira" + i +"']").click()
这将构建即 XPath://a[text()='Jira1']
为了更好地控制您的循环并了解您的循环发生了什么,您可以首先构建 XPath 字符串然后使用它,即像这样:
for i in range(1,4):
XPathInLoop = "//a[text()='Jira" + i + "']"
print(XPathInLoop)
driver.find_element(By.XPATH,XPathInLoop).click()
推荐阅读
- django - 自定义注册表单不注册用户并且不显示错误消息
- android - 从 fireBase 获取包含 List 的复杂对象的值
- python-3.x - Python 脚本在到达 CV2 函数时卡住了
- r - 将原始日期转换为R中的序数整数
- java - 为单个和复合词创建搜索过滤器的最有效方法是什么?
- c# - 是否有任何功能或正确的方法可以将十进制数解析为指数
- export - 如何在导出向导中删除最近的文件
- java - 如何使用 java 中的一个或多个 INOUT 参数调用 postres 过程
- ios - 我可以使用 Unix 套接字在两个 iOS 应用程序之间进行本地通信吗
- web-scraping - 如何让网络爬虫/爬虫/机器人“友好”?