通过selenium和python同一行中的相应值检索网站表中的文本

2024-04-26 03:45:52 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我问错了这个问题,请原谅。我对selenium/web相关编程还不太熟悉,对网站结构/查询等没有很好的掌握

我用selenium做了一些事情,几天后我(嗯,主要是在这个网站上一些可爱的人的帮助下)设法使我的脚本正常工作。这个脚本涉及到提交订单,现在我需要做的最后一件事就是获取与该订单相关联的编号。在

在我当前脚本的末尾,我被重定向到show order form网站(你必须登录才能看到它,但我在下面添加了一个截图),我想知道我刚刚提交的订单的订单号。每个订单都将与一个唯一的名称相关联(例如,山猫、水晶等-现在看起来不唯一,因为我正在测试,但会是)。我这样做是为了在show order页面中反映这个名称(在submit步骤中没有名字的位置,但我只是将它作为注释添加进来),现在我想使用这个名称来获得订单 ID(在OrderID列下)。在

所以我的问题是,如何找到'OrderID'列下的字符串(即'恢复.虚拟@gmail.com网站-01082015-151052'),如果我只知道与订单相关联的名称(即“harold”)?在

表格的页面源代码和屏幕截图位于底部。在

提前谢谢!在

编辑:脚本将重复运行,在客户机请求时创建订单。所以我无法根据页面上的位置找到我的答案,因为订单会不断增加。在

{1美元^

<div class='boxbody'> <table> <tr class="header_row"> <th class='header_row noborder orderid'>Order ID</th> <th class='header_row noborder pordered'>Products Ordered</th> <th class='header_row noborder pcomplete'>Products Complete</th> <th class='header_row noborder pstatus'>Status</th> <th class='header_row noborder pnote'>Note</th> </tr> <tr class="oddrow"> <td class="oddrow"><a href="/ordering/status/recover.dummy%40gmail.com-01082015-151052/">recover.dummy@gmail.com-01082015-151052</a></td> <td class="oddrow" id='26910_total_ordered'></td> <td class="oddrow" id='26910_finished'></td> <td class="oddrow">Ordered</td> <td class="oddrow">harold</td> </tr> <tr class="evenrow"> <td class="evenrow"><a href="/ordering/status/recover.dummy%40gmail.com-01082015-145743/">recover.dummy@gmail.com-01082015-145743</a></td> <td class="evenrow" id='26907_total_ordered'></td> <td class="evenrow" id='26907_finished'></td> <td class="evenrow">Complete</td> <td class="evenrow">bobcat</td> </tr> <tr class="oddrow"> <td class="oddrow"><a href="/ordering/status/recover.dummy%40gmail.com-01082015-145449/">recover.dummy@gmail.com-01082015-145449</a></td> <td class="oddrow" id='26906_total_ordered'></td> <td class="oddrow" id='26906_finished'></td> <td class="oddrow">Complete</td> <td class="oddrow"></td> </tr> <tr class="evenrow"> <td class="evenrow"><a href="/ordering/status/recover.dummy%40gmail.com-01082015-145034/">recover.dummy@gmail.com-01082015-145034</a></td> <td class="evenrow" id='26905_total_ordered'></td> <td class="evenrow" id='26905_finished'></td> <td class="evenrow">Complete</td> <td class="evenrow"></td> </tr> <tr class="oddrow"> <td class="oddrow"><a href="/ordering/status/recover.dummy%40gmail.com-01082015-143913/">recover.dummy@gmail.com-01082015-143913</a></td> <td class="oddrow" id='26902_total_ordered'></td> <td class="oddrow" id='26902_finished'></td> <td class="oddrow">Complete</td> <td class="oddrow">bobcat</td> </tr> </table> </div>


Tags: 订单comidtrgmailclasstdrow
1条回答
网友
1楼 · 发布于 2024-04-26 03:45:52

使用^{}通过xpath获取:

name = 'harold'
order_id = driver.find_element_by_xpath('//div[@class="boxbody"]//table//tr[td[last()][text()="%s"]]/td[1]/a' % name)
print order_id.text

这里我们检查的是tr中最后一个td中的文本,如果有匹配的话,我们将从同一个td内的第一个td中得到{}。希望这是清楚的。在

相关问题 更多 >