所以我有一个表可以有0到x行,总是有7列。
如下所示。
Type Price Store Weight For-sale Stock Discount
x
x
x
x
x
这是HTML的外观:
<table id="my_table" class="datatable" cellspacing="0" cellpadding="0" border="0" style="border-width:0px;border-collapse:collapse;">
<tbody>
<tr>
<tr class="row" style="cursor:pointer;" onclick="javascript:__doPostBack('my$table','Select$0')">
<td>
<td class="first">Meat</td>
<td>75</td>
<td>Adams grocery</td>
<td align="center">1kg</td>
<td>Yes</td>
<td>Full</td>
<td>Yes</td>
<td>
</tr>
<tr class="row" style="cursor:pointer;" onclick="javascript:__doPostBack('my$table','Select$1')">
<td>
<td class="first">Vegetable</td>
<td>25</td>
<td>Adams grocery</td>
<td align="center">0.5kg</td>
<td>No</td>
<td>Empty</td>
<td>No</td>
<td>
</tr>
</tbody>
</table>
</div>
&#13;
我想要做的是点击每一行,如果存在包含文字&#34; Adams杂货&#34; (在第3列中),因此它们在单独的选项卡中打开,然后立即向所有选项卡发出新指令。例如:点击按钮&#34; welcome&#34;在所有标签上。 我有一种感觉,对于我来说,作为一个初学者,上面的内容可能有点过于复杂......所以我想也许只需点击其中一行即可。
一整天都在考虑这件事,感谢所有的帮助!
答案 0 :(得分:0)
你需要这样的东西:
测试了这个html: http://jsfiddle.net/zvhrm6tf/
from selenium.webdriver.support.wait import WebDriverWait
td_list = WebDriverWait(driver, 10).until(lambda driver: driver.find_elements_by_css_selector("#my_table tr td"))
for td in td_list:
if(td.text == "Adams grocery"):
td.click()
如果您需要定位表格行,您可以执行以下操作:
tr = td.find_element_by_xpath("..")