如何使用ruby修剪文本并将其用作watir下一步的参数

如何使用ruby修剪文本并将其用作watir下一步的参数,ruby,split,trim,Ruby,Split,Trim,这可能是一个非常简单的问题,但我对ruby或任何编程语言都很陌生。我想修剪一些文本,并将其用作下一步的参数。任何人都可以给我写这样做的代码。我正在测试一个用于金融领域的web应用程序。我需要使用下一步生成的cvv2和卡号到期日作为参数。在html上显示的文本是 CVV2 - 657  Expiry - 05/12 (mm/yy) 现在,从上面的文本中,我应该了解下一步如何仅获取“657”和“0512”,因为要使用的值。 请求紧急援助。如果所有字符串的格式都是这样,我建议使用regexp,使用St

这可能是一个非常简单的问题,但我对ruby或任何编程语言都很陌生。我想修剪一些文本,并将其用作下一步的参数。任何人都可以给我写这样做的代码。我正在测试一个用于金融领域的web应用程序。我需要使用下一步生成的cvv2和卡号到期日作为参数。在html上显示的文本是

CVV2 - 657  Expiry - 05/12 (mm/yy)
现在,从上面的文本中,我应该了解下一步如何仅获取“657”和“0512”,因为要使用的值。
请求紧急援助。

如果所有字符串的格式都是这样,我建议使用regexp,使用
String\gsub
。如果您还没有了解regexp,那么有很多地方可以学习它,并允许您在浏览器中使用一个简短的备忘表来测试它。

要快速完成,您可以使用

card_details = "CVV2 - 657  Expiry - 05/12 (mm/yy)"
card_details = card_details.scan(/\d{2,}/)
cvv2 = card_details[0]
expiry = card_details[1] + card_details[2]
也许是更好的方法,因为我不是专家,但你说紧急,所以

为了从单元格中提取文本,您可以尝试(我不再使用原始watir,因此我可能记不住这个):

如果这不起作用,试试看(实际上,仔细想想,先试试这个)


对于这些示例,我假设您的浏览器对象称为“browser”。

我们可以使用正则表达式来实现相同的功能

> "CVV2 - 657  Expiry - 05/12 (mm/yy)".match(/\d{3}/)
=> "657"
>"CVV2 - 657  Expiry - 05/12 (mm/yy)".match(/\d+\/\d+/)
=> "05/12"

请提供一些代码示例,说明您尝试了什么,但没有成功。谢谢您的帮助。你也可以建议我如何获取文本并将其存储为卡的详细信息,正如你上面提到的。我现在意识到,我不知道如何获取th值并将其分配给可变的卡详细信息。html标记看起来像这个CVV2-657 Expiry-05/12(mm/yy)Text-CVV2-657 Expiry-05/12(mm/yy)我已经更新了我的答案,试图从单元格中获取详细信息,但我不再使用原始watir,而且我很少使用表单元格,因此文本可能无法按预期工作。如果您使用的是watir webdriver,.td方法就是您想要的方法。
card_details = browser.cell(:text => /CVV2/).text
> "CVV2 - 657  Expiry - 05/12 (mm/yy)".match(/\d{3}/)
=> "657"
>"CVV2 - 657  Expiry - 05/12 (mm/yy)".match(/\d+\/\d+/)
=> "05/12"