如何获得动态搜索结果:Python / Selenium

时间:2017-06-02 14:28:46

标签: python selenium

我是Python,Selenium的新手,需要一些帮助才能做到这一点:

我在网站上搜索某些内容,搜索后,根据搜索结果呈现的结果是动态的。我试图获得结果集,但无法如何做到: 这是代码所包含的结果页面的一部分,我正在尝试获取所有列表。我特别想迭代每个列表,也想获得每个上市代码(1111111111,111111111 ......)

 <div id="listingsParent">
        <div id="listings" class="visibleLayer">
        <div>
          <div id="listing_1111111111">
            <div class="abc test">.......</div>
            ----
            ----
         </div>
          <div id="listing_1111111112">
            <div class="abc test1">.......</div>
            ----
            ----
         </div>
          <div id="listing_1111111113">
            <div class="abc test2">.......</div>
            ----
            ----
         </div>
          <div id="listing_1111111114">
            <div class="abc test3">.......</div>
            ----
            ----
         </div>     

我使用过代码:

allListings = browser.find_elements_by_xpath(&#34; // * [@ id =&#39; listing&#39;]&#34;)
LisBegin = allListings.find_elements_by_xpath(&#34; // div [contains(text(),&#39; listing _&#39;]&#34;)

然后尝试获取属性&#34; id&#34; ..... listing_1111111111 这不适合我。

感谢您的帮助

拉​​吉

2 个答案:

答案 0 :(得分:0)

您可以通过xpath实现此目的,所有ID为listing_的元素都将匹配此xpath

LisBegin = allListings.find_elements_by_xpath("//div[contains(@id, 'listing_')]")

有关xpath的更多信息,请查看this

另请查看locators in selenium以获取有关不同定位器的更多信息

我希望这会对你的工作有所帮助,如果你有任何问题,请不要犹豫,问他们。

答案 1 :(得分:0)

观察1:它必须是findelement而不是findelements。

allListings = browser.find_element_by_xpath("//*[@id='listings']")

观察2:使用ID代替文字。

LisBegin = allListings.find_elements_by_xpath("//div[contains(@id, 'listing_')]")

希望这会对你有所帮助。感谢。

相关问题