如何在步骤定义中应用选择器定位器

时间:2017-10-14 19:06:31

标签: c# selenium specflow

关于使用By语句使用多个定位器,我有一个问题。

下面我在一段代码中输入了一个基于by子句的字段:

    public void GetFieldAndEnterText(By fieldElement, string fieldText) =>
        _driver.FindElement(fieldElement).SendKeys(fieldText);

在我的步骤定义中,我正在努力找出如何根据specflow步骤中提到的字段确定要使用的定位器。

我有以下步骤:

When I enter in invalid email Test.TestEmail.plc for Email address field
    And I enter in invalid email Test.TestEmail.gmail.com for Confirm email address field

如果该字段是电子邮件地址,我实际上想要它,然后使用此定位器:

_payment.GetFieldAndEnterText(PaymentDetailsResponsiveElements.EmailAddressField);

如果该字段是确认电子邮件地址:

_payment.GetFieldAndEnterText(PaymentDetailsResponsiveElements.ConfirmEmailAddressField);

如何在下面的步骤定义中应用此功能?

 [When(@"I enter in invalid email (.*) for (.*) field")]
    public void WhenIEnterInInvalidEmailForField(string fieldText, By fieldElement)
    {
            _payment.GetFieldAndEnterText(fieldElement, fieldText);
    }

1 个答案:

答案 0 :(得分:1)

您也可以这样做。我使用了场景大纲,但你可以不用。

    Traceback (most recent call last):
  File "harmosanimate.py", line 10, in <module>
    psr = exp(-0.5*(xs/0.5)**2) * cos(k0*xs)
TypeError: only length-1 arrays can be converted to Python scalars