У меня есть веб-страницы в веб-проекте «CalculatorWeb», где я поместил одно текстовое поле с идентификатором «txtNum1»исключение «нет такого элемента» при использовании Selenium с C#
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<form id="frmCalc">
<div style="padding-top:20px;">
My Sample Text Box <br/><br/>
<input id="txtNum1" type="text" />
</div>
</form>
</body>
</html>
Ничего фантазии так страницы загружает как ниже
Теперь я создал полнометражный файл «BrowserTest1.feature» в мой проект «Calculator.Specs». Код следующего
Feature: BrowserTest1
In order to check url
As browser
I want to be see url of page
@mytag
Scenario: Go to URL
Given I have entered 'http://localhost:58529/'
When I go to that url
Then there is a text box on the page with id 'txtNum1'
Я тогда свой код файл BrowserTest.cs для реализации модульных тестов
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using TechTalk.SpecFlow;
namespace Calculator.Specs
{
[Binding]
class BrowserTest
{
public string urlPath;
[Given(@"I have entered 'http://localhost:58529/'")]
protected void SetURL()
{
string URLPath = "http://localhost:58529/";
urlPath = URLPath;
}
[When(@"I go to that url")]
protected void NavigateToURL()
{
using (var driver = new ChromeDriver())
{
driver.Navigate().GoToUrl(urlPath);
}
}
[Then(@"there is a text box on the page with id 'txtNum1'")]
protected void TxtBoxExists()
{
bool txtExists = false;
using (var driver = new ChromeDriver())
{
IWebElement txtBox1 = driver.FindElement(By.Id("txtNum1"));
if (txtBox1 != null)
{
txtExists = true;
}
}
Assert.AreEqual(true, txtExists);
}
}
}
Насколько я знаю, у меня есть все необходимые ссылки для Visual Studio IDE для SpecFlow/Селен интеграция
Когда я запустить тест на единицу нагрузки веб-страницы вверх штраф, однако я получаю провальный тест когда Я пытаюсь найти элемент с идентификатором «txtNum1», даже если текстовое поле с таким идентификатором существует на странице
Сведения об исключении выглядеть следующим образом
может указывать никому меня в правильном направлении относительно того, что мне не хватает, чтобы позволить Selenium найти текстовое поле на странице с идентификатором «txtNum1»
Просто первое предположение - shouln't быть 'driver', разделяемого между шаги? –