我可以使用 Selenium 进行自动速度测试吗?
Can I Automated Speed Test using Selenium?
我正在使用 beta.speedtest.net 检查我的网络速度。我想使用 Selenium(也对其他框架开放)自动执行此过程。这个自动化过程包括几个步骤
- 正在单击“更改服务器”link
- 输入我的首选服务器位置
- 选择我喜欢的服务器
- 运行 测试
- 获取每个测试的结果(以任何可能的方式)
我的进展如何
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();
}
找不到任何对我的过程至关重要的元素。
试试这个:
driver.findElement(By.xpath("//a[@class='btn-server-select' and contains(text(), 'Change Server')]")).click();
LinkText
不适用于您的情况,因为文本包含前导空格和尾随空格。这些可能是不间断空间
所以你必须使用包含 contains 或 normalize-space
的 xpath
//a[normalize-space(text())='Change Server']
//a[contains(text(),'Change Server')]
如果你想要简单,那就选择 className
btn-server-select
因为只有一个元素具有这样的类名
我正在使用 beta.speedtest.net 检查我的网络速度。我想使用 Selenium(也对其他框架开放)自动执行此过程。这个自动化过程包括几个步骤
- 正在单击“更改服务器”link
- 输入我的首选服务器位置
- 选择我喜欢的服务器
- 运行 测试
- 获取每个测试的结果(以任何可能的方式)
我的进展如何
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();
}
找不到任何对我的过程至关重要的元素。
试试这个:
driver.findElement(By.xpath("//a[@class='btn-server-select' and contains(text(), 'Change Server')]")).click();
LinkText
不适用于您的情况,因为文本包含前导空格和尾随空格。这些可能是不间断空间
所以你必须使用包含 contains 或 normalize-space
的 xpath//a[normalize-space(text())='Change Server']
//a[contains(text(),'Change Server')]
如果你想要简单,那就选择 className
btn-server-select
因为只有一个元素具有这样的类名