Python:硒:find_elements_by_xpath 最多 10
Python: Selenium: find_elements_by_xpath max 10
所以,我现在有一段看起来像这样的工作代码;
if browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]"):
snipes = browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]")
else:
print "Cant find snipes.. Retrying..."
browser.get("https://www.rolimons.com/deals")
time.sleep(2)
print "Reloaded browser... Retrying..."
if browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]"):
snipes = browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]")
else:
print "Shutting down engine..."
browser.quit()
checking = False
print "Restarting script..."
break
一切正常。它有 60 个元素。现在我只需要前 10 个。我怎样才能使它只 find_elements_by_xpath
且限制为 10 个?
有什么办法吗?
谢谢!
==== 编辑 ====
这段代码目前需要 4 秒。我希望通过将最大值设置为 10 来减少这个时间。
您可以使用:
//[yourXpath]/*[position()<=10]
你的情况
//div[contains(@class, 'dealspg_item_cell')]/*[position()<=10]
虽然使用 xpath 是很好的答案。您还可以根据各自的性能参考 css 选择器。我个人遇到了这样的问题,其中 xpath 不工作但 CSS 选择器是
div.dealspg_item_cell:nth-child(-1n+10)
说明nth-child(-1n+10)
+10
表示这里的节点位置,我们要从那里挑选元素
-1n
第10个节点之前的所有节点
假设总共有 11 个元素,那么选择将类似于:
另一个例子是nth-child(1n+10)
,它表示第10个节点之后的所有其他节点
您可以从 here
中探索更多
所以,我现在有一段看起来像这样的工作代码;
if browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]"):
snipes = browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]")
else:
print "Cant find snipes.. Retrying..."
browser.get("https://www.rolimons.com/deals")
time.sleep(2)
print "Reloaded browser... Retrying..."
if browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]"):
snipes = browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]")
else:
print "Shutting down engine..."
browser.quit()
checking = False
print "Restarting script..."
break
一切正常。它有 60 个元素。现在我只需要前 10 个。我怎样才能使它只 find_elements_by_xpath
且限制为 10 个?
有什么办法吗?
谢谢!
==== 编辑 ====
这段代码目前需要 4 秒。我希望通过将最大值设置为 10 来减少这个时间。
您可以使用:
//[yourXpath]/*[position()<=10]
你的情况
//div[contains(@class, 'dealspg_item_cell')]/*[position()<=10]
虽然使用 xpath 是很好的答案。您还可以根据各自的性能参考 css 选择器。我个人遇到了这样的问题,其中 xpath 不工作但 CSS 选择器是
div.dealspg_item_cell:nth-child(-1n+10)
说明nth-child(-1n+10)
+10
表示这里的节点位置,我们要从那里挑选元素
-1n
第10个节点之前的所有节点
假设总共有 11 个元素,那么选择将类似于:
另一个例子是nth-child(1n+10)
,它表示第10个节点之后的所有其他节点
您可以从 here
中探索更多