gpt4 book ai didi

c# - 具有相似元素的 Selenium Webdriver C# 页面

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

我有 4 个页面,它们的元素和功能非常相似。但是,所有元素都有不同的 ID,具体取决于您所在的页面。目前,我将它们构造如下(例如 A 类和 B 类)。我想重构它,因为这两个类之间的所有方法都相同,但我不知道该怎么做,因为元素具有不同的 ID(我正在使用页面工厂,但我愿意也不使用它)。

非常感谢任何见解!

public class A : BaseClass
{
[FindsBy(How = How.Id, Using = "ALoginId"]
public IWebElement Login {get; set;}

[FindsBy(How = How.Id, Using = "APassword"]
public IWebElement Password {get; set;}

[FindsBy(How = How.Id, Using = "ALoginBtn"]
public IWebElement LoginBtn {get; set;}

public void Login()
{
Login.SendKeys("username");
Password.SendKeys("password");
LoginBtn.Click();
}
}

public class B : BaseClass
{
[FindsBy(How = How.Id, Using = "BLoginId"]
public IWebElement Login {get; set;}

[FindsBy(How = How.Id, Using = "BPassword"]
public IWebElement Password {get; set;}

[FindsBy(How = How.Id, Using = "BLoginBtn"]
public IWebElement LoginBtn {get; set;}

public void Login()
{
Login.SendKeys("username");
Password.SendKeys("password");
LoginBtn.Click();
}
}

最佳答案

如果有类似的其他字段,如名称、类,您可以使用它来代替 id。

这里还有一些你可以使用的方法:

public class A : BaseClass
{
private String loginWindow;

[FindsBy(How = How.Id, Using = "ALoginId"]
public IWebElement Login {get; set;}

[FindsBy(How = How.Id, Using = "APassword"]
public IWebElement Password {get; set;}

[FindsBy(How = How.Id, Using = "ALoginBtn"]
public IWebElement LoginBtn {get; set;}

[FindsBy(How = How.Id, Using = "BLoginId"]
public IWebElement Loginb {get; set;}

[FindsBy(How = How.Id, Using = "BPassword"]
public IWebElement Passwordb {get; set;}

[FindsBy(How = How.Id, Using = "BLoginBtn"]
public IWebElement LoginBtnb {get; set;}

public A(Srting loginwindow){
this.loginWindow; = loginwindow;
}

public void Login()
{
if(loginwindow.equals("A")) {
Login.SendKeys("username");
Password.SendKeys("password");
LoginBtn.Click();
}
elseif(loginwindow.equals("B")){
Loginb.SendKeys("username");
Passwordb.SendKeys("password");
LoginBtnb.Click();
}
else{
throws new Execption("Please provide correct login Window name")
}
}
}

关于c# - 具有相似元素的 Selenium Webdriver C# 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37472339/

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