【发布时间】:2018-03-27 15:04:19
【问题描述】:
我在 VSCode 中建立了一个 NUnit 框架,但是在我的页面 ctor 中设置 PageFactory 时遇到了问题。我已将 DotNetSeleniumExtras.PageObjects 添加到我的 .csproj 中,但即使使用 SeleniumExtras.PageObjects 也无法调用 PageFactory.InitElements(driver,this)。
我已经看到有关从 .Net Core 中删除 PageObjects 的文章/视频,但我认为(也许是天真的)DotNetSeleniumExtras 会解决这个问题。
自从 PageObjects 被拉到他们自己的项目中后,有没有人得到这个工作?
以下是我在设置过程中遵循的步骤:
1) 安装 VSCode
2) 创建新文件夹
3) 在 VSCode 中打开文件夹
4) 安装 .Net Core
5) 安装扩展:
C#
.Net Core 测试资源管理器
显示测试结果(对 NUnit .Net Core 的 TDD 支持)
6) 添加 NUnit 模板:
dotnet new -i NUnit3.DotNetNew.Template
7) 创建项目:
dotnet 新 nunit
8) 添加包:
dotnet 添加包 Selenium.Webdriver
dotnet 添加包 Selenium.Support
dotnet 添加包 DotNetSeleniumExtras.PageObjects
dotnet 添加包 NUnit
dotnet 添加包 NUnit3TestAdapter
dotnet 添加包 Microsoft.NET.Test.Sdk
.csproj 内容
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetSeleniumExtras.PageObjects" Version="3.11.0" />
<PackageReference Include="nunit" Version="3.10.1" />
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.6.1" />
<PackageReference Include="Selenium.Support" Version="3.11.0" />
<PackageReference Include="Selenium.Webdriver" Version="3.11.0" />
</ItemGroup>
</Project>
Page.cs
using NUnit.Framework;
using System;
using SeleniumExtras.PageObjects;
using OpenQA.Selenium;
namespace IS.Pages
{
class Landing
{
public Landing()
{
PageFactory.InitElements(DriverUtil.driver,this);
}
// Start Search Button
[FindsBy(How = How.CssSelector, Using = "body > main > header > div.background-wrapper > div > div > div:nth-child(1) > div > a")]
public IWebElement AdvancedSearch {get; set;}
【问题讨论】:
标签: c# visual-studio-code .net-core pageobjects