簡體   English   中英

使用硒從網頁捕獲文本

[英]Capture a text from webpage using selenium

我正在嘗試從不斷變化的網站中捕獲一段文字。 看起來像 :

訂單ID:XXIO-123344-3456

前綴是常數,但數字始終會變化。 我想捕獲此數字並將其存儲。 我已經嘗試storeTextPresent使用正則表達式模式regexp:Email.*@.*com storeTextPresent 它確實為我返回了True,但沒有返回值。 當然storeTextPresent應該只返回TrueFalse 那么,現在如何獲取確切的值?

這是網頁部分的屏幕截圖。 無法顯示整個頁面,很抱歉。

在此處輸入圖片說明

那么有什么想法嗎?

記錄到python遠程控制后,我導出這些測試。 因此,更歡迎使用python特定的代碼。

使用正則表達式regexp:^XXIO-.+ assertText命令將解決此問題。 嘗試將其與您需要驗證的元素ID結合使用。

剛剛看了一下手冊。 我在Store Commands和Selenium Variables下找到了storeText命令。 我的猜測是,如果您使用storeText而不是storeTextPresent。

另外,可以嘗試使用xpathDOMCSS定位器,而不是嘗試使用正則表達式模式查找文本。

感謝您的想法,但我找不到該文本的定位器。 這是我使用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分開,僅此而已.......這只是一個臨時解決方案.......

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”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM