我是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 这不适合我。
感谢您的帮助
拉吉
答案 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_')]")
希望这会对你有所帮助。感谢。