python - 如何使用 selenium python 使用 href 的部分文本进行迭代
问题描述
HTML:
<a href="javascript:__doPostBack('gvDisplayProducts','Page$2')" style="color:White;">2</a>
Xpath:
//*[@id="gvDisplayProducts"]/tbody/tr[28]/td/table/tbody/tr/td[2]/a
这些是我需要单击的页面按钮,上面的 href 和 xpath 是用于页面按钮之一和
我正在尝试遍历网站上不同的搜索结果页面。在 XPATH 上td["value"]
,第 1-10 页从 1 变为 10,然后对于第 11-20 页,td["value"]
再次变为 1 到 10。
我如何使用'Page$i'
href的部分进行迭代。我不能使用 xpath,因为 xpath 在到达某个页面后会再次重复。请让我知道我是否可以只'Page$"i"'
使用 selenium 和 python 迭代部分。
解决方案
你可以使用python字符串格式
elems = [driver.find_element_by_xpath(f"//a[@href=\"javascript:__doPostBack('gvDisplayProducts','Page${i}')\"]") for i in range(10)]
这将给出所有元素的列表作为变量 elems 中的列表
如果你改变 find elem 打印出来是:
所以看看你给的xpath是否有效,如果这样做的话,这是在你的xpath中的href中迭代i的方法
我将元素添加到 html 文件并尝试使用 xpath 进行搜索
你可以看到它被正确检测到
如果在您的情况下未检测到它,请查看其内部 iframe 还是您需要 webdriver 等待
推荐阅读
- html - 使部门与其他部门一起扩大
- r - 如何在 R 中绘制每年每月的推文总数?
- angular - 如何为Angular Material Table的filterPredicate函数创建单元测试
- c - scanf 接受的输入比预期的要多
- react-navigation-v6 - 嵌套在 Material Bottom Tab 内的堆栈在您第二次导航时不显示内容(React Navigation v6)
- http - 如何在代理中使用 https URL 处理 POST/GET?
- python - 符号求解不适定方程
- python - 我有一个无法解决的错误“列表索引超出范围”
- r - ggplot2:向图例符号添加 2 位数字
- python-3.x - Subsets of a data frame where certain columns satisfy a condition