[英]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.