Я пытаюсь научиться Selenium WebDriver, используя учебники онлайн и т.д ...Как закрыть Popovers и в онлайн-объявлений с селеном WebDriver
Я изо всех сил, чтобы преодолеть эту obctacle, который должен закрыть поповер.
Использование: ноутбуков: Alienware ОС: Windows 10 64бит Browser: Firefox 51.0.1 (32-разрядная версия) Затмение: Версия: Neon.2 Release (4.6.2) Идентификатор сборки: 20161208- 0600 Селен WebDriver: Java 3.0.1 2016-10-18
`package com.indeed.tests;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class IndeedJobSearch {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
//Create firefox driver to drive the browser
System.setProperty("webdriver.gecko.driver", "C:\\Users......\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
//Open Indeed home page
driver.get("https://www.indeed.co.uk/");
//Find what field and enter Selenium
Thread.sleep(1000);
driver.findElement(By.id("what")).sendKeys("Selenium");
//Find location field and enter London
driver.findElement(By.id("where")).clear();
Thread.sleep(1000);
driver.findElement(By.id("where")).sendKeys("London");
//Find FindJobs button and click on it
Thread.sleep(1000);
driver.findElement(By.id("fj")).click();
//Close popup - popover, not popup
//prime-popover-div
//selenium webdriver cannot close bootstrap popovers
//Can't find a solution
//From job search results page, get page title and jobs count message
//searchCount
System.out.println(driver.getTitle());
System.out.println(driver.findElement(By.id("searchCount")).getText());
driver.close();
}
}
`
Ожидаемый результат: Selenium Webdriver откроет браузер Firefox, загрузит веб-страницу Indeed.co.uk, вставляет «Selenium» в первое поле, вставляет «Лондон» во второе поле, нажимает кнопку поиска, получает титул и работу значения счета в консоли и окне драйвера.
Фактический результат: Селен WebDriver откроет браузер Firefox, загрузите indeed.co.uk веб-страницу, вставьте «Селен» в первом поле, вставить «Лондон» во втором поле, нажмите кнопку поиска, ОСТАНОВКИ фокуса в поле url, и ничего больше не происходит.
Я попробовал несколько решений, но не мог заставить его работать (https://sqa.stackexchange.com/questions/5310/how-to-close-pop-up-window-in-selenium-webdriver)
например
driver.findElement(By.id("prime-popover-close-button")).click();
Driver.SwitchTo().frame("prime-popover-div");
Driver.findElement(By.id("prime-popover-close-button")).click();
Driver.SwitchTo().defaultContent();
driver.findElement(By.xpath("//*[@id='prime-popover-close-button']/a/img")).click();
Примечание: Не совсем уверен, что мой XPath писался правильно, все еще учусь.
Ничего из этого не работает. Я прочитал кое-что о Selenium WebDriver, не обращаясь к загрузчикам, не уверен, что это точно мой случай, или если кто-либо из вас нашел решение.
Очень хотелось бы решения и или совет :)
большое спасибо заранее.
Здравствуйте @JeffC, Я попытался, что, как я уже говорил, по вопросу ... Пробовал несколько решений и не работал. У Yogesh Rathi и BurritoBandit был хороший момент, который я должен был сделать, это добавить ожидание появления popover и нажать. (Раньше не передумал ... Я все еще очень новый, я признаю). В любом случае спасибо за совет по поводу сна, я буду читать больше. :) – Fox23
Код, который я написал, является рабочим кодом. Я попробовал это сам, и это сработало. – JeffC
Здравствуйте @JeffC, Прежде чем я разместил этот вопрос здесь, я уже пробовал. Я пробовал много решений, и они не работали. Даже сейчас я создал NewJavaProject, чтобы снова попробовать ваш код. С моей стороны это не сработает. НО, если бы я ожидал ожидаемых условий, тогда остальная часть кода работает. "import org.openqa.selenium.support.ui.WebDriverWait;" "WebDriverWait wait = новый WebDriverWait (драйвер, 10);" "wait.until (ExpectedConditions.elementToBeClickable (By.id (" prime-popover-close-button ")));» Я не знаю, почему он работает на вас без ожидания ожидаемых условий, это не помогло мне. – Fox23