Ребят помогите, пожалуйста. Сталкнулся с такой проблеммой. Есть меню, оно представленно выпадающим списком, список раскрывается после наведения курсора на пункт меню. Пробовал разные способы нажать на нужный пункт меню, ничего не выходит. Вот пара способов способов
public class MainPage {
WebDriver driver;
WebElement element, onElement;
Actions a;
public MainPage(WebDriver driver) {
this.driver = driver;
}
public void setElement() {
element = driver.findElement(By.xpath("//span[@class ='iceMnuBarItemLabel' and text()='Задачи']"));
onElement = driver.findElement(By.xpath("//span[@class ='iceMnuItmLabel' and text()='Сводные отчёты']"));
a.moveToElement(element).build().perform();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
onElement.click();
}
}
public class MainPage {
WebDriver driver;
WebElement element, onElement;
Actions a;
public MainPage(WebDriver driver) {
this.driver = driver;
}
public void setElement() {
element = driver.findElement(By.xpath("//span[@class ='iceMnuBarItemLabel' and text()='Задачи']"));
onElement = driver.findElement(By.xpath("//span[@class ='iceMnuItmLabel' and text()='Сводные отчёты']"));
a.moveToElement(element).build().perform();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
onElement.click();
}
}
У меня ничего не вышло, может я совсем не туда лезу?
Есть выпадающее меню. Нужно выбрать пункт из этого меню. Список раскрывается при наведении на кнопку.
Вот класс в котором описан клик на нужную ссылку
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
public class HomePage {
private WebDriver driver;
private Actions actions;
public HomePage(WebDriver driver) {
this.driver = driver;
}
public Customers getCustomer(WebDriver driver, String xpathCustomer,
String xpathCalls) {
actions = new Actions(this.driver);
WebElement customers = driver.findElement(By.xpath(xpathCustomer));
WebElement receivingCalls = driver.findElement(By.xpath(xpathCalls));
actions.moveToElement(customers).click(receivingCalls);
Action muveAndClick = actions.build();
muveAndClick.perform();
return new Customers(driver);
}
}
А вот сам тест
import static org.junit.Assert.*;
import java.util.concurrent.TimeUnit;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Tests {
private static WebDriver driver;
@BeforeClass
public static void setUp() {
System.setProperty("webdriver.chrome.driver", "D://chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(102, TimeUnit.SECONDS);
driver.get("http://robot2:38204/argus/home/home.seam");
}
@Test
public void login() {
LogonPage logPage = new LogonPage(driver);
HomePage home = logPage.logon("j_username", "developer", "j_password",
"developer", "//td/input[@class = 'login-button']");
}
@Test
public void customers() {
HomePage home = new HomePage(driver);
Customers customer = home.getCustomer(driver,
"//span[@class ='iceMnuBarItemLabel' and text() = 'Клиенты']",
"//a[@id='j_id30:j_id34:j_id55:j_id56:link']");
}
В реальности происходит магия
Если закрыть эклипс и открыть его снова то тест может пройти несколько раз. Т.е. выбирается нужный элемент.
Дальше происходит лишь визуальное “кликанье”. То есть можно увидеть (правда эт происходит очень быстро) как открывается список, и вроде бы что то нажимается. Но клика и соответсвенно перехода на другую страницу не происходит.
Помогите пожалуйста разобраться
import org.openqa.selenium.support.ui.Select;
Select select = new Select(driver.findElement(By.xpath("//form[@id='addClientForm']/div/div[6]/div/span/span/span[2]")));
select.selectByVisibleText("Albania");
```
но не работает, в чем ошибка?