gpt4 book ai didi

c# - 使用 Webdriver 循环访问页面上的每个链接

转载 作者:行者123 更新时间:2023-11-29 18:13:48 24 4
gpt4 key购买 nike

我被要求创建一个测试,该测试可以使用 C# 中的 webdriver 循环访问页面上的所有链接。

我真的不知道从哪里开始,很抱歉没有提供任何代码。

我需要以某种方式选择页面上的所有链接并将它们放入一个数组或类似的东西中,它们只需循环遍历它们、单击链接、返回上一页、单击下一个链接等。

最佳答案

我假设它是这样的:

        foreach (var item in _driver.FindElements(By.TagName("a")))
{
Trace.WriteLine(item.GetAttribute("href"));
}

编辑:

请注意,这是使用 NUnit 从头部和近似解决方案编写的。

[TestFixture]
class UnitTests
{
[TestFixtureSetUp]
public void FixtureSetup()
{
_driver = new ChromeDriver();
_driver.Manage().Timeouts().ImplicitlyWait(Defaultamount);
_wait = new WebDriverWait(_driver, Defaultamount);
}
[TestFixtureTearDown]
public void FixtureTearDown()
{
_driver.Quit();
}
//...
}

代码应该是这样的:

    [TestCase("www.googel.com")]
public bool TestAllWebpageLinks(string url, Result = true)
{
_driver.Navigate().GoToUrl(url);
var result = _driver.FindElements(By.TagName("a"))
.Select(o=>o.GetAttribute("href"))
.ToDictionary(o=>o,o=>TestPage(url,o));
return result.All(o => o.Value);
}
public bool TestPage(string url, string link){
try
{
_driver.Navigate().GoToUrl(url);
_driver.FindElement(By.XPath("//a[@href='"+link+"']")).Click();
return true;
}
catch (Exception ex)
{
return false;
}
}

请注意,Resharper 插件将大大简化运行单元测试。

关于c# - 使用 Webdriver 循环访问页面上的每个链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25058515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com