首页 > 解决方案 > 如何使用 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 迭代部分。

标签: pythonselenium

解决方案


你可以使用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 等待


推荐阅读