0

変化し続ける Web サイトからテキストをキャプチャしようとしています。次のようになります。

オーダーID : XXIO-123344-3456

プレフィックスは一定ですが、番号は常に変化します。この番号をキャプチャして保存したいと思います。storeTextPresent正規表現パターンで試しましregexp:Email.*@.*comた。Trueは返されますが、値は返されません。もちろん、 TrueまたはFalsestoreTextPresentのみを返すことになっています。では、どうすれば正確な値を取得できますか?

Web ページの一部のスクリーン ショットを次に示します。全ページをお見せできません、申し訳ありません。

ここに画像の説明を入力

それで、何かアイデアはありますか?

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

アイデアをありがとうございますが、テキストのロケーターが見つかりませんでした。これは、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 and Selenium Variables の下にstoreTextコマンドが見つかりました。私の推測では、storeTextPresent の代わりに storeText を使用する場合です。

また、正規表現パターンを使用してテキストを検索する代わりに、 xpathDOM、またはCSSロケーターを使用してみてください。

于 2012-10-17T07:34:43.623 に答える
0

パイソンコード。

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 に答える