1

我正在使用beta.speedtest.net来检查我的网络速度。我想使用 Selenium 自动化这个过程(也对其他框架开放)。这个自动化过程包括几个步骤

  1. 单击更改服务器链接
  2. 输入我的首选服务器位置
  3. 选择我选择的服务器
  4. 运行测试
  5. 获取每个测试的结果(以任何可能的方式)

我是如何进行的

    public void RunTheTest()
    {
        IWebDriver driver = new ChromeDriver();
        driver.Manage().Window.Maximize();
        driver.Navigate().GoToUrl("http://beta.speedtest.net");
        driver.FindElement(By.LinkText("Change Server")).Click();
    }

找不到对我的流程至关重要的任何元素。

4

2 回答 2

2

LinkText不适用于您的情况,因为文本包含前导和尾随空格。那些可能是不间断的空间

在此处输入图像描述

因此,您必须使用带有 contains 或normalize-space的 xpath

//a[normalize-space(text())='Change Server']

//a[contains(text(),'Change Server')]

如果您想要简单,请使用 className

btn-server-select

因为只有一个具有此类 className 的元素

于 2017-06-24T18:51:54.930 回答
1

尝试这个:

driver.findElement(By.xpath("//a[@class='btn-server-select' and contains(text(), 'Change Server')]")).click();
于 2017-06-23T20:07:16.217 回答