gpt4 book ai didi

c# - C# 中的 Selenium WebDriver - "By"类扩展

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

我一直在一个 webdriver 项目中工作,以自动化我的测试,并且我尝试开发类似助手的东西。默认情况下,在 By 类中有 CssSelector()、XPath()、ClassName() 等方法。

我的问题是:我是否可以(以及如何?!)扩展此类以创建另一种方法来简化我的代码?我想要 By 调用我自己的方法。我搜索并获得了一些关于如何创建 NewBy 的结果,但我认为这会使我的代码将来变得杂乱无章。

Selenium 中默认存在的内容:

FindElement(By.CssSelector("#example"));

我正在尝试开发什么:

FindElement(By.MyOwnMethod("example"));

谢谢!

最佳答案

在 css 中,# 符号是 ID 选择器。您可以只使用 By.Id(string) 方法。


编辑:

如果你真的想定制它,你可以定义你自己的By实现。但是您不能扩展静态方法,因此您需要创建一个新类来托管它们。我会在这里使用Via,您可以随时使用对您更有意义的名称,例如网站名称:

public class Via
{
public static By AdminMenu(string Id) // could also just use int
{
return By.CssSelector(string.Format("[selenium-admin-menu='{0}']", Id));
}

public static By ImgSrc(string source)
{
return By.CssSelector(string.Format("img[src='{0}']", source));
}
}

//usage:
var menu3 = driver.FindElement(Via.AdminMenu("3"));

关于c# - C# 中的 Selenium WebDriver - "By"类扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32081305/

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