0
在NUnit的運行時,我得到下面的錯誤,選擇元素的問題 - webdriver的 - C#
我發現一個元素,並將其存儲在一個變量,而試圖選擇元素,我收到錯誤。試圖用這種方式使用
IWebElement fromitem = WebDriver.FindElement(By.Id("from"));
但同樣的錯誤依然存在。 有什麼辦法可以選擇元素?
注意:我用螢火蟲驗證了元素ID,似乎沒有問題。
下面的代碼,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.Events;
using OpenQA.Selenium.Support.PageObjects;
namespace SeleniumTests
{
[TestFixture]
public class Sel
{
public static IWebDriver WebDriver;
private String baseURL;
[SetUp]
public void SetupTest()
{
WebDriver = new FirefoxDriver();
baseURL = "http://www.x-rates.com/calculator.html";
}
[TearDown]
public void TeardownTest()
{
WebDriver.Quit();
}
[Test]
public void newtest()
{
WebDriver.Navigate().GoToUrl(baseURL + "/");
var fromitem = WebDriver.FindElement(By.Id("from"));
var toitem = WebDriver.FindElement(By.Id("to"));
var fromval = new SelectElement(fromitem); //Error occurs
var toval = new SelectElement(toitem);
fromval.SelectByText("USD - US Dollar");
toval.SelectByText("INR - Indian Rupee");
WebDriver.FindElement(By.LinkText("Currency Calculator")).Click();
var curval = WebDriver.FindElement(By.CssSelector("span.ccOutputRslt")).GetAttribute("Value");
var expectedValue = 61.456825;
Thread.Sleep(900);
Assert.AreEqual(expectedValue, curval.Trim());
}
}
}
給我聽起來像你的引用搞砸了。您是否在應用程序中引用了支持庫?複製本地設置爲真?在你正在啓動測試的文件夾中,在'bin'文件夾中,這兩個WebDriver DLL都在那裏? – Arran
存在兩個webdriver DLL的Bin文件夾。支持庫被引用。對於nunit框架引用,Copy-Local設置爲true。現在我設置Copy-Local true爲webdriver引用,但仍然無效。 –
@Arran - 你想讓我爲所有引用(包括系統引用)設置Copy-Local爲True嗎? –