我正在尝试从没有ID的表中获取数据,在使用Python和Selenium时我似乎无法进行搜索。以下是HTML的代码段,我试图获取名称,名称后还有其他行,但是我只是在这里显示名称。我有什么想法可以遍历所有这些条目并获取其值。
我尝试了一些搜索Div类的示例,但无法使其正常工作。以下是我要搜索的原始HTML。
<div class="block-content-body clear-block">
<div class="inline-block" style="border-top:2px solid #50afb1; padding:0px;">
<div class="table-block standard no-plumb-line">
<table cellpadding="0" cellspacing="0">
<tbody><tr>
<td id="" style="padding-left:4px;padding-bottom:2px;height:25px;vertical-align:middle">
<div>
Name</div>
</td>
<td id="" class="text-center" style="padding-left:4px;padding-bottom:2px;height:25px;vertical-align:middle">
<div>
<strong>
David
</strong>
</div>
</td>
</tr>
我想获取名称字段和值David。地址行1和2等下还有其他字段。我想获取所有这些内容。
我的代码如下:
elements = driver.find_elements_by_xpath("//div[@class='table-block standard no-plumb-line']")
print(elements)
for num in (1,elements.length):
text1 = driver.find_element_by_xpath("//*[@class='table-block standard no-plumb-line']/div["+num+"]/div[1]").text
text2 = driver.find_element_by_xpath("//*[@class='table-block standard no-plumb-line']/div["+num+"]/div[2]").text
print(text1)
print(text2)
答案 0 :(得分:0)
这是带有所需xpath的脚本,该脚本将提供“名称:值”对。
rows = driver.find_elements_by_xpath("//div[@class='table-block standard no-plumb-line']/table//tr")
for rowNum in range(len(rows)):
nameCols = driver.find_elements_by_xpath("//div[@class='table-block standard no-plumb-line']/table//tr[" + str(rowNum+1) + "]/td[descendant::div[not(strong)]]")
for col in nameCols:
name = col.text
value = col.find_element_by_xpath("./following-sibling::td//strong").text
print (name + " : " + value)