Python:Selenium:通过xpath max 10查找元素

2024-09-27 00:17:48 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我现在有一段代码,看起来像这样

            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来减少这个时间。在


Tags: 代码divbrowserbyifcellelementsfind
2条回答

虽然使用xpath是一个很好的答案。您也可以根据各自的性能引用css选择器。就我个人而言,我遇到了这样的问题:xpath不工作,CSS选择器工作

div.dealspg_item_cell:nth-child(-1n+10)

解释nth-child(-1n+10)

+10这里表示节点的位置,从这里我们要选择元素 -1n第10个节点之前的所有节点

假设总共有11个元素,那么选择如下:

enter image description here

另一个例子是nth-child(1n+10),它表示第10个节点之后的所有其他节点

enter image description here

您可以从here浏览更多内容

您可以使用:

//[yourXpath]/*[position()<=10]

对你来说

^{pr2}$

相关问题 更多 >

    热门问题