2017-10-21 88 views
0

我的第一个问题对我来说太袒露了。我是新来编码,我正在为本地Wordpress设置编写一个测试自动化框架,我想用一个文本文件来存储用户名,密码,xpaths等。我有一个类,我想处理阅读的来自文本文件的数据并将数据传递给登录方法。它看起来像这样:从文本文件中读取数据并将数据传递给登录方法

读取数据:

public class CSV 
{ 
    public string username; 
    public string password; 

    public void ReadCsvFile() 
    {    

     StreamReader reader = new StreamReader(@"Textfile.txt"); 


     while (!reader.EndOfStream) 
      { 
       var line = reader.ReadLine(); 
       var values = line.Split(',');      

       username = values[1]; 
       password = values[2]; 

      } 


    } 
} 

的方法,我通过用户名:

public void Login() 
    {   

     var usernameField = Driver.Instance.FindElement(By.XPath("//input[contains(@id, 'user_login')]")); 
     usernameField.SendKeys(username); 

当运行登录测试中,我得到一个错误说“文字不能为空“我猜这意味着我的变量用户名没有指向任何东西。解决方案可能很简单,但我的新手眼睛看不到它:)。如果有人有解决方案,将不胜感激。

+1

使用调试器强制卢克 –

回答

0

没有IDE并与您一起运行,这里有一些事情要检查。

  1. 我假设当你调用线 userNamefield.sendKey错误被抛出。那是对的吗?

  2. 确保By.XPath(“// input [contains(@id,'user_login')]”)确实返回了一些内容,以便Driver.Instance.FindElement可以运行。

  3. 要验证用户名是否指向空白,只需在该行上放置一个断点 并将光标悬停在该变量上。 IDE将 显示什么是用户名变量。

让我知道你找到了什么,也许我可以帮助。

+0

谢谢你的回答! 1.是的,这是正确的。指向特定代码行的错误点。 2. XPath正常工作。如果我将登录证书放在属性中的单独类中,则测试工作正常。 3.悬停时,它指向“(字段)字符串CVS.username”。 如果我右键单击用户名并选择查找所有引用,它将指向CSV类中的“username = values [1]”(不确定查找所有引用是否是在此使用的正确的东西)。 我使用的txt文件只有两行,用户名和密码在顶部行。它存储在项目文件夹和VS中。 –

+0

而不是使用By.XPath(“//输入[包含(@ id,'user_login'))]”),替换为By.Id(“user_login”) –

+0

好吧,为什么我应该使用Id?这对我目前的问题有帮助吗?我已经尝试过并且像XPath一样工作。谢谢你的评论! –

0

从你发布的内容来看,我猜测问题是你正在读取CSV类中的usernamepassword,但是这些值永远不会传递回主脚本,因此可以将它们传递给Login()函数。另一个问题是,您没有将任何值传递到Login()函数中......您应该传入usernamepassword

处理读取CSV有几种方法。

  1. 一种方法是读它在一个时间线,并传回usernamepassword该行。这对更大的文件更好,因为它可以节省内存。

  2. 另一种方法是读取整个文件并返回一组值包括usernamepassword

+0

好的感谢您的输入!您有任何提示,我应该如何在当时阅读它并将其传回?以为我是用Readline方法做的。 –

+0

单向(在我的答案中是#1)是将'ReadCsvFile()'中的代码拿到你的主脚本文件中。在你存储'username'和'password'后,你的脚本就开始了。然后你将'Login()'更改为'Login(字符串用户名,字符串密码)',并传入你从文件中读取的内容。 – JeffC

+0

谢谢,我会试试!我看到的唯一问题是,我最初的计划是有一个类来照顾文件的阅读,所以我不必为每个测试放置相同的代码,这已经不再有用了。但也许这是去这里最好的方式。 –

相关问题