我试图从一个不断变化的网站上捕捉一段文字。 它看起来像:
订单编号:XXIO-123344-3456
前缀是常量但数字总是会改变。我想捕获这个数字并存储它。我尝试使用正则表达式storeTextPresent
regexp:Email.*@.*com
。它确实给我一个 True ,但它没有给我返回值。当然storeTextPresent
应该只返回 True 或 False 。那么现在我如何捕获确切的值?
这是网页部分的屏幕截图。无法显示整个页面,对不起。
那么有什么想法吗?
我在录制到python遥控器后导出这些测试。所以python特定的代码更受欢迎。
答案 0 :(得分:1)
assertText
的 regexp:^XXIO-.+
命令可以解决问题。请结合您需要验证的元素ID来尝试此操作。
答案 1 :(得分:0)
刚看了一下手册。我在storeText下找到了Store Commands and Selenium Variables命令。我的猜测是,如果你使用storeText而不是storeTextPresent。
答案 2 :(得分:0)
感谢您的想法,但我无法找到文本的定位器。 这是我使用firebug捕获的代码。
<div class="chkOutBox">
<h2 id="tnq" class="marb10">Order Details</h2>
<div class="ordRevAddressArea">
<div class="ordRevDelSlotArea">
<div class="clear"></div>
<div class="bFont">Order ID: BBO-72262-171012</div>
<div class="scartPgHdr">
<h3 class="catHdr">Fruits & Vegetables</h3>
这里我们正在捕捉身份证号码(第6行)......可能有人可以告诉我如何从上面的代码找出一个可能的定位器 ....顺便说一句,我通过捕获具有订单ID的页面的URL来解决我的问题。我使用正则表达式来分离订单ID,这就是它......它只是一个临时解决方案。 ......
答案 3 :(得分:0)
Python代码。
def get_order_id(driver):
""" Gets the order id, given an Order Details page. """
try:
bFonts = driver.find_element_by_class_name("bFont")
for element in bFonts:
if "Order ID" in element.text:
return element.text.split()[-1]
except NoSuchElementException:
return None
这假设类名bFont
永远不会改变。如果是,您可以重写它以搜索div
标记。它还假定将找到“订单ID”。