namespace FindElementCommands2
{
class Program
{
public static void Main(string[] args)
{
IWebDriver driver = new SafariDriver();
driver.Navigate().GoToUrl("https://demoqa.com/automation-practice-form/");
Thread.Sleep(5000);
bool a = driver.FindElement(By.PartialLinkText("Partial")).Enabled;
Console.WriteLine(a);
driver.FindElement(By.PartialLinkText("Partial Link Test")).Click();
}
}
}你好啊,
我是使用C#开发Selenium的初学者。我试着点击链接部分链接测试使用PartialLinkText定位器,但它一直在抱怨元素不能在应用程序输出中交互。请说明一下哪里出了问题。当我尝试元素是禁用还是启用时,它返回True,这意味着它是启用的。它在控制台中返回True。
发布于 2020-05-25 01:20:27
我认为你可以使用这个:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using System;
using System.IO;
using System.Reflection;
namespace StackOverFlow.Answer.Selenium.PartialLinkText
{
class Class1
{
public static IWebDriver driver;
public static WebDriverWait wait;
public static int timeOut = 30;
[Test]
[Category("ClickPartilLink")]
public void LoginFail()
{
Console.WriteLine("Get instance Chrome Browser");
driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), OptionsChrome());
Console.WriteLine("Acess demo site");
driver.Navigate().GoToUrl("http://automationpractice.com/index.php");
Console.WriteLine("Waiting Element to click");
WaiElement(By.XPath("//a[contains(.,'Best Sellers')]"));
Console.WriteLine("Total Link 'Best Sellers'");
driver.FindElement(By.PartialLinkText("Best")).Click();
Console.WriteLine("Close Chrome Browser");
driver.Close();
Console.WriteLine("Kill instance Driver.");
driver.Quit();
}
/// <summary>
/// Wait elements
/// </summary>
/// <param name="locator"></param>
private void WaiElement(By locator)
{
wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeOut));
wait.Until(condition: ExpectedConditions.PresenceOfAllElementsLocatedBy(locator));
}
/// <summary>
/// fill
/// </summary>
/// <param name="locator"></param>
/// <param name="text"></param>
private void Fill(By locator, string text)
{
WaiElement(locator);
driver.FindElement(locator).SendKeys(text);
}
/// <summary>
/// click on elements
/// </summary>
/// <param name="locator"></param>
private void Click(By locator)
{
WaiElement(locator);
driver.FindElement(locator).Click();
}
/// <summary>
/// return text from element
/// </summary>
/// <param name="locator"></param>
/// <returns></returns>
private string GetText(By locator)
{
WaiElement(locator);
return driver.FindElement(locator).Text;
}
/// <summary>
/// set up what capabilites chrome will take
/// </summary>
/// <returns></returns>
private ChromeOptions OptionsChrome()
{
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--start-maximized");
chromeOptions.AddArguments("--disable-infobars");
chromeOptions.AddArguments("--disable-notifications");
return chromeOptions;
}
}
}https://stackoverflow.com/questions/61553017
复制相似问题