2016-12-19 2 views
0

Я тестирую свой сайт администратора Office и в том, что есть боковая панель, которая содержит несколько параметров, но метод щелчка не работает, я хочу щелкнуть ссылку сотрудника, но его не щелкая, оборотный штраф до driver.findElement(By.xpath(".//*[@id='sidebar']/div/ul/li[2]/a/span[1]")).click();Selenium Click() не всегда работает в браузере Chrome или firefox

, но после того, что метод клик не работает Пожалуйста, помогите ScreenShot is here

Мой код:

 WebDriver driver =new ChromeDriver(); 
     driver.get("http:******"); 
     driver.manage().window().maximize(); 

     driver.findElement(By.xpath(".//*[@id='UserName']")).sendKeys("username"); 
     driver.findElement(By.xpath(".//*[@id='Password']")).sendKeys("password"); 
     driver.findElement(By.xpath(".//*[text()='Submit']")).click(); 
     driver.findElement(By.xpath(".//*[@id='sidebar-collapse']")).click(); 
     driver.findElement(By.xpath(".//*[@id='sidebar-collapse']")).click(); 

     driver.findElement(By.xpath(".//*[@id='sidebar']/div/ul/li[2]/a/span[1]")).click(); 
     driver.findElement(By.xpath(".//*[@id='sidebar']/div/ul/li[2]/ul/li[3]/a/span[1]")).click(); 
+0

ли вы попробовать добавить ожидание, прежде чем нажать на «Сотрудник». Кроме того, сообщайте подробный отчет об ошибке, когда вы пытаетесь нажать «Сотрудник» –

+0

, добавив, что ожидание работает несколько раз, но не всегда. –

+0

. Оптимальное ожидание должно быть добавлено к тесту, чтобы оно работало каждый раз. Вы можете обнаружить, что, запустив его несколько раз и посмотрев, какое минимальное значение ожидания работает evrytime –

ответ

0

Попробуйте добавить неявную ждать после инициализации драйвера

WebDriver driver =new ChromeDriver(); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
+0

, он работает, но не всегда, несколько раз его работает, какое-то время не так почему? –

+0

Я должен постоянно менять СЕКУНДЫ как 10, затем 5, затем снова 10, чтобы запустить скрипт ПОЧЕМУ ??? –

+0

вы можете установить некоторое время, например, 10 или 15 секунд. неявное ожидание позволяет селену ждать появления элемента до этого времени. Если он будет найден ранее, он будет продолжать с ошибками шагов или отчетов. – Giri

0

Попробуйте

WebDriverWait wait = new WebDriverWait(tester, 15); 
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//*[@id='sidebar']/div/ul/li[2]/ul/li[3]/a/span[1]"))); 
driver.findElement(By.xpath(".//*[@id='sidebar']/div/ul/li[2]/ul/li[3]/a/span[1]")).click(); 
+0

Спасибо за ваш ответ, но добавление неявного ожидания отлично сработало для меня. –