Tôi đang cố mở một tab mới HOẶC một cửa sổ mới trong trình duyệt bằng selenium cho python. Nó không quan trọng lắm nếu một tab mới hoặc cửa sổ mới được mở ra, điều quan trọng là một phiên bản thứ hai của trình duyệt được mở ra.Làm thế nào để mở một cửa sổ mới trên trình duyệt bằng cách sử dụng Selenium WebDriver cho python?
Tôi đã thử một số phương pháp khác nhau và chưa có phương pháp nào thành công.
Chuyển sang một cửa sổ mà không tồn tại với hy vọng rằng nó sau đó sẽ mở ra một cửa sổ mới khi thất bại trong việc xác định vị trí cho biết cửa sổ:
driver.switch_to_window(None)
lặp lại qua cửa sổ đang mở (mặc dù có hiện tại chỉ có một)
for handle in driver.window_handles: driver.switch_to_window(handle)
Cố gắng mô phỏng một phím bấm phím
from selenium.webdriver.common.keys import Keys driver.send_keys(Keys.CONTROL + 'T')
Vấn đề với cái này đặc biệt là nó dường như không thể gửi chìa khóa trực tiếp vào trình duyệt, chỉ để một yếu tố cụ thể như thế này:
driver.find_element_by_id('elementID').send_keys(Keys.CONTROL + 'T')
Tuy nhiên, khi một lệnh như thế này được gửi đến một phần tử, nó dường như hoàn toàn không làm gì cả. Tôi đã cố gắng để xác định vị trí các phần tử HTML trên cùng trên trang và gửi các phím đó, nhưng đã một lần nữa gặp thất bại:
driver.find_element_by_id('wrapper').send_keys(Keys.CONTROL + 'T')
Một phiên bản của này, tôi tìm thấy trên mạng, và đã không thể xác minh tính hợp lệ hoặc thiếu của nó đó vì tôi không chắc chắn những gì lớp/mô-đun mà cần nhập khẩu
act = ActionChains(driver)
act.key_down(browserKeys.CONTROL)
act.click("").perform()
act.key_up(browserKeys.CONTROL)
cái gì đó rất tương tự với cú pháp khác nhau (tôi không chắc chắn nếu một hoặc cả hai trong số này là đúng cú pháp)
actions.key_down(Keys.CONTROL)
element.send_keys('t')
actions.key_up(Keys.CONTROL)
Điều đó chỉ dành cho các trình duyệt đầu wor, Firefox, Chrome, v.v. Ví dụ: PhantomJS không có ràng buộc khóa và bạn cần gọi 'execute_script()' với mã javascript thích hợp. Trường hợp bạn cần phải chuyển các mục/cookie, chỉ cần tạo liên kết target = _blank sau đó nhấp vào nó trước đó. – erm3nda