我是日本的Hiro。我刚开始独自学习Selenium的Python。
如果有人帮助我解决以下问题,我感到很高兴。
包含在“ p”标记中的“数据”的数量始终会更改,因此不知道每次将显示多少数据。Data4始终出现,但顺序已更改。这些数据也被分配了相同的类别。
例如,如果样本A Data4为第4,而样本B为第2。请帮助我如何选择“ Data4”。
提前谢谢你的帮助。
(sample A)
----------------------------------------
<div class="elist" id="test">
<ul class="ijkl">
<li class="elRow">
<div class="elRowTitle">
<p>Code1</p>
</div>
<div class="elRowData">
<p>Data1</p>
</div>
</li>
<li class="elRow">
<div class="elRowTitle">
<p>Code2</p>
</div>
<div class="elRowData">
<p>Data2</p>
</div>
</li>
<li class="elRow">
<div class="elRowTitle">
<p>Code3</p>
</div>
<div class="elRowData">
<p>Data3</p>
</div>
</li>
<li class="elRow">
<div class="elRowTitle">
<p>Code4</p>
</div>
<div class="elRowData">
<p>Data4</p>
</div>
</li>
</ul>
</div>
----------------------------------------
(sample B)
----------------------------------------
<div class="elist" id="test">
<ul class="ijkl">
<li class="elRow">
<div class="elRowTitle">
<p>Code1</p>
</div>
<div class="elRowData">
<p>Data1</p>
</div>
</li>
<li class="elRow">
<div class="elRowTitle">
<p>Code4</p>
</div>
<div class="elRowData">
<p>Data4</p>
</div>
</li>
</ul>
</div>
----------------------------------------
我为样本A和B使用“ find_elements_by_xxxxx”方法编写了以下脚本,但没有用。
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
elem_ItemCodes = driver.find_elements_by_tag_name('div')
elem_ItemCodes2 = elem_ItemCodes.find_elements_by_class_name('elRowData')
elem_ItemCode = elem_ItemCodes2[3].text
print(elem_ItemCode)
您可以将父代用作参考,
等效的xpath将是:
//div[@id="test"]//div[@class="elRowData"][4]/p
您的方法是正确的,但请进行一些更改,例如:
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
elem_ItemCodes = driver.find_elements_by_id('test')
elem_ItemCodes2 = elem_ItemCodes.find_elements_by_class_name('elRowData')
elem_ItemCode = elem_ItemCodes2[4].find_elemen_by_tag_name("p").text
print(elem_ItemCode)
文本在P标记中,xpath中的索引从1开始,而不是0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句