2

我需要在 selenium (c#) 中测试一个只有一个元素的滑块。诸如音量或亮度控制之类的东西。我在网上搜索过,我能找到的只有两个元素(源和目标)。我尝试了许多功能,但都没有工作。

Actions move = new Actions(driver);
move.DragAndDropToOffset(driver.FindElement(By.Id("someid")), 39, -9).Perform();

谁能帮我解决这个问题?我对 Selenium 和 c# 完全陌生。如果我需要提供更多详细信息,请告诉我。谢谢

4

1 回答 1

0

你确定只有一个元素吗?如果您的滑块可以沿着像这个滑块这样的轨道拖动

在此处输入图像描述

用一个“滑块手柄”(一个 <a/> 标签作为值为“5ft 5”的框)沿着一个“滑块轨道”(一个 <div> 标签作为长黑条),那么移动的距离偏移量可以进行计算。以下代码将在 C# 中用于将滑块句柄沿滑块轨道移动一个百分比,并使用 CSS 值计算距离。

public void SetSliderPercentage(string sliderHandleXpath, string sliderTrackXpath, int percentage)
{
    var sliderHandle = driver.FindElement(By.XPath(sliderHandleXpath));
    var sliderTrack = driver.FindElement(By.XPath(sliderTrackXpath));
    var width = int.Parse(sliderTrack.GetCssValue("width").Replace("px", ""));
    var dx = (int)(percentage / 100.0 * width);
    new Actions(driver)
                .DragAndDropToOffset(sliderHandle, dx, 0)
                .Build()
                .Perform();
}
于 2013-05-14T08:05:59.453 回答