gpt4 book ai didi

c# - Specflow:通过步骤参数转换传递 IWebElement

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:49 25 4
gpt4 key购买 nike

我想做这样的事情(注意 IWebDriver 而不是典型的字符串)

[Given(@"I select ""(.*)"" option")]
public void GivenInISelectOption(IWebDriver p0)
{
MainMenuPage.SelectOption(p0);
}

像这样成为 MainMenuClass:

class MainMenuPage
{
//spans
public static IWebElement SetupMenu
{ get { return Configuration.driver.FindElement(By.XPath(".//span[@id='Setup_navItem']")); } }

public static void SelectOption (IWebElement element)
{
element.Click();
}
}

使用情况应该是这样的:

And I select "SetupMenu" option

问题:是否可以使用步骤参数转换让步骤定义接受 IWebElement 而不是字符串?

最佳答案

我不能说它是否可行,但无论如何我都不会建议。但是,这里有一种方法可以解决您的问题:

[Given(@"I select ""(.*)"" option")]
public void GivenInISelectOption(string p0)
{
if(p0.Equals("SetupMenu"){
MainMenuPage.SelectOption(MainMenuPage.SetupMenu);
}
}

这样你仍然可以从 stepdef 中调用你需要的选项

另一种更简单的方法是:

[Given(@"I select ""(.*)"" option")]
public void GivenInISelectOption(string p0)
{
if(p0.Equals("SetupMenu"){
MainMenuPage.SetupMenu.Click();
}
}

关于c# - Specflow:通过步骤参数转换传递 IWebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30329881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com