在网站“http://www.seleniumeasy.com/test/drag-drop-range-sliders-demo.html”中存在一个滑块。默认情况下,第一个滑块值为10.我试图自动将滑块移动到20的值。但是无法执行相同的操作。 。我使用了以下代码
String emailAddress = RegEmailId.getText().toString().trim();
if (RegPassword.getText().toString().length() < 6) {
RegPassword.setError(getString("password minimum contain 6 character"));
RegPassword.requestFocus();
}
if (RegPassword.getText().toString().equals("")) {
RegPassword.setError(getString("please enter password"));
RegPassword.requestFocus();
}
if (RegPhoneNo.getText().toString().equals("")) {
RegPhoneNo.setError(getString("please enter password"));
RegPhoneNo.requestFocus();
}
if (!android.util.Patterns.EMAIL_ADDRESS.matcher(emailAddress).matches()) {
RegEmailId.setError(getString("please enter valid email address"));
RegEmailId.requestFocus();
}
if (RegEmailId.getText().toString().equals("")) {
RegEmailId.setError(getString("please enter email address"));
RegEmailId.requestFocus();
}
if (!emailAddress.equals("") &&
RegPassword.getText().toString().length() >= 6 &&
!RegPassword.getText().toString().trim().equals("")
&& android.util.Patterns.EMAIL_ADDRESS.matcher(emailAddress).matches() &&
!RegPhoneNo.getText().toString().equals("")&&
RegPhoneNo.getText().toString().length()>=10) {
// do your action
}
请在下面找到滑块和滑块图片的HTML代码。请帮助自动化滑块。
WebElement sliderOne = driver.findElement(By.xpath("//*[@class='range']/output"));
System.out.println(sliderOne.getAttribute("value"));
Actions action = new Actions(driver);
action.clickAndHold(sliderOne);
action.moveByOffset(20, 0).release().build().perform();
答案 0 :(得分:0)
滑块位于<input>
标记中,而不是<output>
标记中。 <output>
标记只是值。
WebElement sliderOne = driver.findElement(By.xpath("//*[@class='range']/input"));
答案 1 :(得分:0)
您可以使用以下代码将滑块移动到值20:
public static void main(String[] args) throws Exception {
System.setProperty("webdriver.chrome.driver", "D:/Selenium/Drivers/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://www.seleniumeasy.com/test/drag-drop-range-sliders-demo.html");
Thread.sleep(1000);
WebElement sl = driver.findElement(By.xpath(".//*[@id='slider1']/div/input"));
//Using Action Class
Actions move = new Actions(driver);
Action action = move.dragAndDropBy(sl, -79, 0).build();
action.perform();
}
我测试了它并且它正在工作。 希望它会对你有所帮助。
答案 2 :(得分:0)
这是设置确切滑块值的代码。
System.setProperty("webdriver.chrome.driver","//path to driver");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("http://www.seleniumeasy.com/test/drag-drop-range-sliders-demo.html");
WebElement eleSlider1=driver.findElement(By.cssSelector("[name='range']"));
int valueToBeset=40;
valueToBeset=(valueToBeset>1&&valueToBeset<30)?valueToBeset+1:valueToBeset;
int eleSlider1Width=eleSlider1.getSize().getWidth();
int pixelValue=(eleSlider1Width)*valueToBeset/100;
new Actions(driver).moveToElement(eleSlider1,pixelValue, 0).click().build().perform();