[英]Capture a text from webpage using selenium
我正在嘗試從不斷變化的網站中捕獲一段文字。 看起來像 :
訂單ID:XXIO-123344-3456
前綴是常數,但數字始終會變化。 我想捕獲此數字並將其存儲。 我已經嘗試storeTextPresent
使用正則表達式模式regexp:Email.*@.*com
storeTextPresent
。 它確實為我返回了True,但沒有返回值。 當然storeTextPresent
應該只返回True或False 。 那么,現在如何獲取確切的值?
這是網頁部分的屏幕截圖。 無法顯示整個頁面,很抱歉。
那么有什么想法嗎?
記錄到python遠程控制后,我導出這些測試。 因此,更歡迎使用python特定的代碼。
使用正則表達式regexp:^XXIO-.+
assertText
命令將解決此問題。 嘗試將其與您需要驗證的元素ID結合使用。
剛剛看了一下手冊。 我在Store Commands和Selenium Variables下找到了storeText命令。 我的猜測是,如果您使用storeText而不是storeTextPresent。
感謝您的想法,但我找不到該文本的定位器。 這是我使用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>
在這里,我們正在捕獲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.