0

我正在尝试从不断变化的网站中捕获一段文本。看起来像 :

订单编号:XXIO-123344-3456

前缀是不变的,但数字总是会改变。我想捕获这个号码并存储它。我尝试过storeTextPresent使用正则表达式模式regexp:Email.*@.*com。它确实返回了一个True但它没有返回我的值。当然storeTextPresent应该只返回TrueFalse。那么现在我怎样才能捕捉到确切的价值呢?

这是网页部分的屏幕截图。无法显示整个页面,非常抱歉。

在此处输入图像描述

那么有什么想法吗?

我在录制到 python 遥控器后导出这些测试。所以python特定的代码更受欢迎。

4

4 回答 4

1

assertText command with the regular expression regexp:^XXIO-.+ would resolve the issue. Try this in conjunction with the element id you need to verify.

于 2012-10-17T08:25:08.360 回答
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”。

于 2012-10-18T17:07:46.413 回答
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:&nbsp; BBO-72262-171012</div>
<div class="scartPgHdr">
<h3 class="catHdr">Fruits &amp; Vegetables</h3>

在这里,我们正在捕获 id 号(第 6 行)......可能有人可以告诉我如何从上面的代码中找出可能的定位器......顺便说一下,我通过捕获具有订单 ID 的页面的 URL。我使用正则表达式来分隔订单 ID,仅此而已.......这只是一个临时解决方案......

于 2012-10-17T09:38:55.017 回答
0

刚看了一下说明书。我在Store Commands 和 Selenium Variables下找到了storeText 命令。我的猜测是,如果您使用 storeText 而不是 storeTextPresent。

此外,您可以尝试使用xpathDOMCSS定位器,而不是尝试使用正则表达式模式查找文本。

于 2012-10-17T07:34:43.623 回答