Selenium WebDriver kullanıyorum. Her bağlantı yeni bir tarayıcı penceresinde açılır. Benim için uygun değil. Yeni sekmede açılacak şekilde nasıl değiştirebilirim?Selenium WebDriver: Yeni pencere yerine yeni sekme aç
cevap
Selenium'un şu anda sekme değiştirme özelliği yoktur. Bu nedenle tarayıcıyı yeni pencerelerde açmaya zorluyoruz, ancak pencereleri değiştirebildiğimiz için tarayıcıyı yaklaşmaya zorluyoruz. Bu , numaralı telefonun
açık, teşekkür ederim – khris
'da düzeltilebileceğini gösterir. Selenium, günümüzün sekmelerini değiştirebilme özelliğine sahiptir. Aşağıdaki kod1: firefox için çalışacak, kod2: Robot sınıfını kullanarak IE ve krom için yapabileceğimiz ve kontrolün otomatik olarak mevcut sekmeye geçmediği için pencere sekmeleri yöntemini kullanarak mevcut sekmeye geçmemiz gerekiyor. Aşağıda verilen kod iyi çalışacaktır. Tek tek komut dosyası çalıştırırken, bir paket olarak çalışırken, anahtar kurulu etkinliklerini gerçekleştirirken acıyı hissedebilirsiniz. Bunu önlemek için selenium-Java'da javascript executor kullanarak kullanıcı tanımlı javascript yöntemini kullanarak başka bir olasılıkla gitmemiz gerekiyor.
Pencereler ve sekmeler arasında, açtığımız her bir pencere için ayrılan adı tanımlayarak ve ad alfasayısal karakterde olacak şekilde geçiş yapabiliriz.
***Code 1***
//First tab(default tab)
driver.navigate().to("http://www.google.com");
driver.manage().window().maximize();
//second tab
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.navigate().to("https://yahoo.com");
//third tab
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.navigate().to("http://www.google.com");
//move to very first tab.
driver.findElement(By.cssSelector("body"))
.sendKeys(Keys.CONTROL + "\t");
// To close the current tab.
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "w");
**code 2**
driver.navigate().to("http://www.google.com");
driver.manage().window().maximize();
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_T);
Set<String> handles = driver.getWindowHandles();
List<String> handlesList = new ArrayList<String>(handles);
String newTab = handlesList.get(handlesList.size() - 1);
// switch to new tab
driver.switchTo().window(newTab);
driver.get("http://www.yahoo.com");
Hangi programlama dilini kullanıyorsunuz? –