2012-10-17 108 views
0

我想从一个不断变化的网站捕获一段文本。 它看起来像:使用硒从网页捕获文本

订单ID:XXIO-123344-3456

的前缀是恒定的,但数字会改变。我想捕获这个数字并存储它。我已经尝试storeTextPresent与正则表达式regexp:Email.*@.*com。它确实会给我一个但它不会返回我的价值。当然storeTextPresent应该只返回。那么现在我怎样才能捕捉确切的价值?

下面是网页部分的屏幕截图。无法显示整个页面,所以很抱歉。

enter image description here

所以任何想法的家伙?

我将这些测试导出到python远程控制之后。所以python特定的代码更受欢迎。

+0

你能显示你实际尝试过的代码吗? –

+0

我没有代码.....考虑你访问一个网页。你启动硒IDE。开始录制。您右键单击所需的页面文本并选择“storeTextPresent”。那就是我想要做的。好吧,试着在这个页面上捕获文本“浏览 8次”。你可以在右上角看到它。你想捕捉“8次”。你是怎么做到的? –

回答

1

assertText使用正则表达式regexp:^XXIO-.+可以解决此问题。结合使用您需要验证的元素ID来尝试此操作。

+1

这不会给出想要的结果,因为它会返回一个布尔值,而不是arindam正在寻找的实际文本。 –

0

感谢您的想法,但我无法找到文本的位置。 这是我使用萤火虫捕获的代码。

<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,并且这就是.......它只是一个临时解决方案.......

+0

你甚至可以使用CSS定位器。很难说什么是最好的,因为html标记不能传达很多语义含义。 CSS类看起来像是基于视觉样式而不是语义。你可以试试'#tnq .bFont'。更好的做法是添加使用语义类名称。另外,我可以建议,不要添加额外的信息作为答案,您应该编辑您的原始问题并在此处添加此信息。 –

+0

好建议......我一定会练习......... –

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