class LoginPage { private IWebDriver driver; public LoginPage(IWebDriver driver) { this.driver = driver; } //HomePage appears when Login successful public HomePage DoLogin(string user, string pass) { driver.FindElement(By.Name("userfield")).SendKeys(user); driver.FindElement(By.Name("passfield")).SendKeys(pass).Submit(); //what is the above fails and i stay on the LoginPage? returning a HomePage object will be a bad idea here HomePage homepage = new HomePage(driver) PageFactory.InitElements(driver, homepage) return homepage; } } class HomePage{ public HomePage(WebDriver driver) { this.driver = driver; } public void clickExitButton() { exitButton.click(); } public LoginPage logout() { clickExitButton(); LoginPage loginpage = new LoginPage(driver) PageFactory.InitElements(driver, loginpage); return loginpage; } }
谢谢!
对于您的第一个问题,我之前解决的方法是在每个page类中包含一个函数,该函数指示Selenium当前是否在预期的页面上。例如,homepage
类将具有如下内容:
public bool IsCurrentPage()
{
try
{
driver.FindElement(By.LinkText("Logout"));
}
catch (Exception)
{
return false;
}
return true;
}
因此,当您创建新的主页
时,您会立即检查它是否有效:
HomePage homepage = new HomePage(driver);
if (!homepage.IsCurrentPage())
throw new Exception("Invalid homepage object");
然后,您可以自由地以任何适合您的目的的方式处理不匹配。当然这个方法是可以被愚弄的,所以另一个选择是检查URL中的页面名称(例如homepage.html)。您对页面检查的严格程度取决于您想要的准确性和灵活性。
问题内容: 异步编程是下一个新兴的范式。。。在过去的几个月中,我一直在Node.js中进行编程,并且一直在学习以这种方式编写代码。我有一个在Silverlight中工作的同事,我一直在尝试教他如何使用TPL。我还向他展示了“ await”关键字及其工作方式。 一段时间后,使用回调变得很正常。在Node.js中,我正在使用caolan / async项目来避免深度嵌套的回调。我看了一下源代码,但这就
问题内容: 在python中,您通常使用PEP 8-Python代码样式指南 作为您的编码标准/准则吗?您还有其他更喜欢的正式标准吗? 问题答案: “在python中,您通常使用PEP 8-Python代码样式指南作为您的编码标准/准则吗?您是否还需要其他正式的标准?” 如您所提到的,请遵循PEP 8作为主要文本,并遵循PEP 257 作为文档字符串约定 与Python样式指南一起,建议您参考以下
本文向大家介绍python编码最佳实践之总结,包括了python编码最佳实践之总结的使用技巧和注意事项,需要的朋友参考一下 相信用python的同学不少,本人也一直对python情有独钟,毫无疑问python作为一门解释性动态语言没有那些编译型语言高效,但是python简洁、易读以及可扩展性等特性使得它大受青睐。 工作中很多同事都在用python,但往往很少有人关注它的性能和惯用法,一般都是现学
问题内容: 我一直在学习有关CSS的SitePoint书。 这些示例让我印象深刻的是使用ID作为CSS选择器。 我已经完成了一些CSS设计工作,我总是发现使用Class作为选择器更容易,更通用。 也许是一个.Net的东西,因为我们并不总是可以控制元素的ID … 这是使用CLASS或ID作为选择器的最佳实践吗? 问题答案: 我猜他们在示例中总是使用id,因为它不那么模棱两可。您知道他们正在专门讨论
本文向大家介绍Go JSON编码与解码的实现,包括了Go JSON编码与解码的实现的使用技巧和注意事项,需要的朋友参考一下 在开发应用程序时,客户端(前端页面或APP)与服务端交互是在所难免的,在交互过程传递数据时,最通用和流行格式便是JSON,Go语言提供了encoding/json包,用于处理JSON数据的编码与解码。 除了JSON,XML也常用于前后端的数据交互,不过由于简洁性、可读性和流行
我正在为一个客户端开发一个在线视频存储系统,主要是用PHP编写的。目前我正在建立一个移动版本的桌面网站。我们的桌面站点允许用户在浏览器中观看视频,很像YouTube。 我的客户端通过我创建的manager界面上传视频,我的应用程序使用服务器上的FFmpeg将他的视频转码成几个分辨率和比特率。我不是FFmpeg方面的专家,虽然我不知道每个单独设置的来龙去脉,但我了解它作为一个整体是如何工作的。现在,