python - 在 selenium 中使用 python 循环

标签 python html selenium loops selenium-webdriver

我写了一个脚本来从搜索页面中提取元素。从搜索结果中提取标题、价格和链接。我需要为页面上的所有 25 个结果捕获这些元素。

我正在使用 Xpath,每个结果都有一个递增的 div 编号。所以我想使用一个循环,以便它可以将增量 div 编号添加到我的 3 个提取中的每一个中。

我是循环的新手,不确定如何使用循环在 Xpath 中插入增量数字。 对于搜索结果的标题,我使用以下代码:

title = driver.find_element_by_xpath("//*[@id='search']/div[1]/div[2]/div/span[3]/div[1]/div[1]/div/div/div/div[2]/div[2]/div/div[1]/div/div/div/h2/a/span").text

这会打印第一个搜索结果的标题。

对于下一个结果,下面的 Div 增加 1。示例:

第一个结果:

//*[@id="search"]/div[1]/div[2]/div/span[3]/div[1]/div[1]

第二个结果是:

//*[@id="search"]/div[1]/div[2]/div/span[3]/div[1]/div[2]

第三个结果是:

//*[@id="search"]/div[1]/div[2]/div/span[3]/div[1]/div[3]

依此类推,总共有 25 个结果。

我如何在 python 中使用循环将特定的 div 增加 1,直到达到 25?

最佳答案

应该这样做,

ResultsCount = 25

for i in range(ResultsCount):
    title = driver.find_element_by_xpath("//*[@id='search']/div[1]/div[2]/div/span[3]/div[1]/div["+str(i+1)+"]/div/div/div/div[2]/div[2]/div/div[1]/div/div/div/h2/a/span").text
    print(title)

关于python - 在 selenium 中使用 python 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57829420/

相关文章:

python - 在 Python 中使用多层生成器的性能注意事项?

python - 无法使用 bs4 从 BSE 网站上抓取特定信息

javascript - 取消选中特定组的动态生成的复选框

javascript - 文本输入事件处理程序

selenium - 使用 Selenium 时 JsonWireProtocol 机制与 W3C Living Document 中新标准的区别

python - 如何在读取文本文件时删除多个空格

html - CSS 子选择器

java - 尝试访问控制台日志条目时,Web 驱动程序返回空列表

java - 将证书添加到 selenium 中的 chrome 选项

python - 如何从手动更改的 Python 包创建轮子?