Bagaimana cara membuka tab baru di browser Firefox yang ada menggunakan Selenium WebDriver (alias Selenium 2)?
selenium
firefox
selenium-webdriver
browser-tab
Bhakti Shah
sumber
sumber
Jawaban:
Kode di bawah ini akan membuka tautan di Tab baru.
Kode di bawah ini akan membuka Tab baru yang kosong.
sumber
window.open()
, Anda dapat mengharapkannya berfungsi pada banyak platform / peramban.Hanya untuk orang lain yang mencari jawaban dengan pengikatan Ruby / Python / C # (Selenium 2.33.0).
Perhatikan bahwa kunci sebenarnya untuk mengirim bergantung pada OS Anda, misalnya, Mac menggunakan
COMMAND + t
, bukanCONTROL + t
.Rubi
Python
C #
sumber
driver.switchTo().window(windowName);
mengakses tab atau jendela apa saja. Jelas, Anda harus melacak nama jendela seperti biasa untuk memungkinkan peralihan di antara mereka.Mengapa tidak melakukan ini
sumber
driver.ExecuteScript("window.open('about:blank','_blank');");
Untuk membuka tab baru menggunakan JavascriptExecutor,
Akan mengontrol tab sesuai dengan indeks:
Kontrol pengemudi di tab utama:
sumber
driver.switchTo().window(tabs.get(1)); driver.get("https://www.stackoverflow.com"); Thread.sleep(2000); driver.switchTo().window(tabs.get(2)); driver.get("https://www.flipkart.com"); Thread.sleep(2000); driver.close(); driver.switchTo().window(tabs.get(1)); Thread.sleep(2000); driver.close(); driver.switchTo().window(tabs.get(0));
, Saya telah mencoba ini tetapi mendapatkan array dari pengecualian terikat, Jika Anda tahu solusi apapun tolong beritahu saya.driver.switchTo().window(tabs.get(2));
, Ini berfungsi dengan baik((JavascriptExecutor) driver).executeScript("window.open('https://www.stackoverflow.com','_blank');"); Thread.sleep(3000); ((JavascriptExecutor) driver).executeScript("window.open('https://www.flipkart.com','_blank');");
tetapi saya tidak akan memiliki kendali untuk beralih ke windows.Untuk membuka jendela baru di Driver Chrome.
Untuk beralih antar tab, Baca di sini
sumber
Anda dapat menggunakan kode berikut menggunakan Java dengan Selenium WebDriver:
Dengan menggunakan JavaScript:
Setelah membuka tab baru, perlu beralih ke tab itu:
sumber
Coba ini untuk browser FireFox.
sumber
Kode di bawah ini akan membuka tautan di jendela baru
sumber
Hampir semua jawaban di sini sudah ketinggalan zaman.
WebDriver sekarang memiliki dukungan untuk membuka tab:
Akan membuka tab baru. Membuka jendela sebenarnya telah menjadi kasus non-standar:
Tab atau jendela tidak akan otomatis difokuskan. Untuk beralih ke sana:
sumber
Untuk membuka tab baru di browser Chrome yang ada menggunakan Selenium WebDriver Anda dapat menggunakan kode ini:
sumber
Saya mengalami kesulitan membuka tab baru di chrome untuk sementara waktu. Bahkan
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
tidak berhasil untukku.Saya menemukan bahwa selenium tidak cukup hanya fokus pada driver, Windows juga harus memiliki jendela di bagian depan.
Solusi saya adalah meminta peringatan di chrome yang akan membawa jendela ke depan dan kemudian menjalankan perintah. Kode sampel:
sumber
Saya menggunakan Selenium 2.52.0 di Java dan Firefox 44.0.2. Sayangnya tidak ada solusi di atas yang berhasil untuk saya. Masalahnya adalah jika saya memanggil driver.getWindowHandles () saya selalu mendapatkan 1 pegangan tunggal. Entah bagaimana ini masuk akal bagi saya karena Firefox adalah proses tunggal dan setiap tab bukanlah proses yang terpisah. Tapi mungkin saya salah. Bagaimanapun saya mencoba menulis solusi saya sendiri:
Saya menggunakan kombinasi Ctrl + t untuk membuka tab baru, Ctrl + w untuk menutupnya, dan untuk beralih kembali ke tab asli saya menggunakan Ctrl + 1 (tab pertama). Saya sadar bahwa solusi saya tidak sempurna atau bahkan bagus dan saya juga ingin beralih dengan panggilan switchTo driver, tetapi ketika saya menulis itu tidak mungkin karena saya hanya memiliki satu pegangan. Mungkin ini akan membantu seseorang dengan situasi yang sama.
sumber
sumber
Bagaimana cara membuka tab baru menggunakan Selenium WebDriver dengan Java untuk chrome?
Kode di atas akan menonaktifkan ekstensi pertama dan menggunakan tab baru kelas robot akan terbuka.
sumber
Baris kode ini akan membuka tab browser baru menggunakan selenium webdriver
sumber
*JAWA
Saya merekomendasikan untuk menggunakan
JavascriptExecutor
:Impor berikut:
sumber
Contoh yang sama untuk nodejs:
sumber
Bagaimana cara membuka yang baru, tetapi yang lebih penting, bagaimana Anda melakukan sesuatu di tab baru itu? Webdriver tidak menambahkan WindowHandle baru untuk setiap tab, dan hanya memiliki kontrol atas tab pertama. Jadi, setelah memilih tab baru (Control + Tab Number), set .DefaultContent () pada driver untuk menentukan tab yang terlihat sebagai yang akan Anda kerjakan.
Dasar visual
sumber
Untuk membuka tab baru di browser Firefox yang ada menggunakan Selenium WebDriver
sumber
sumber
sumber
periksa contoh lengkap ini untuk memahami cara membuka banyak tab dan beralih di antara tab dan pada akhirnya tutup semua tab
Contoh ini diberikan oleh halaman web ini
sumber
Karena bug di https://bugs.chromium.org/p/chromedriver/issues/detail?id=1465 meskipun webdriver.switchTo benar-benar beralih tab, fokusnya ditinggalkan di tab pertama. Anda dapat mengkonfirmasi ini dengan melakukan driver.get setelah switchWindow dan melihat bahwa tab kedua benar-benar menuju ke URL baru dan bukan tab asli.
Bekerja untuk saat ini adalah apa yang disarankan @ yardening2. Gunakan js untuk membuka peringatan dan kemudian gunakan webdriver untuk menerimanya.
sumber
Kode ini berfungsi untuk saya (selenium 3.8.1, chromedriver = 2.34.522940, chrome = 63.0):
sumber
Pertanyaan : Bagaimana cara membuka tab baru menggunakan Selenium WebDriver dengan Java?
Jawaban : Setelah mengklik link apapun, buka tab baru.
Jika kita ingin menangani tab yang baru dibuka maka kita harus menangani tab menggunakan perintah .switchTo (). Window ().
Beralih ke tab tertentu kemudian lakukan operasi dan beralih kembali ke tab induk.
sumber
Selenium tidak mendukung pembukaan tab baru, ini hanya mendukung pembukaan jendela baru. Untuk semua maksud, sebuah jendela baru secara fungsional sama dengan tab baru.
Ada berbagai peretasan untuk mengatasi masalah ini tetapi mereka akan menyebabkan masalah lain bagi Anda dalam jangka panjang.
sumber
Jika Anda ingin membuka tab baru, Anda dapat menggunakan ini
Jika Anda ingin membuka tautan dari tab baru, Anda dapat menggunakan ini
dengan JavascriptExecutor:
dengan Tindakan:
sumber
sumber
Menangani jendela browser menggunakan Selenium Webdriver:
sumber