나는 Sinenium과 Firefox에 대해 Ubuntu14.04에서 작업 중이다. send_keys (Keys.CONTROL + 't')에 의해 새 탭을 만들었지 만 첫 번째 탭에서 명령을 계속주었습니다. 새 탭에 올바르게 초점을 맞추지 않았기 때문일 수 있습니다.Sinenium and Firefox on Ubuntu : 새로운 탭에 집중
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
main_window = driver.current_window_handle
driver.get("https://www.google.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
driver.switch_to_window(main_window)
driver.get("http://www.bing.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
driver.switch_to_window(main_window)
driver.get("https://github.com/login")
이 코드를 실행하는 동안 오류가 없습니다.
google.com으로 이동 한 후 새 탭을 만들고 화면이 새 탭의 빈 페이지로 변경됩니다. 그 후 필자는 새로운 탭에 초점을 맞추기 위해 driver.switch_to_window (main_window)를 작성하여 다음 줄의 코드가 새 탭에서 생성되도록했습니다. 그러나 driver.get ("http://www.bing.com")이 실행되면 화면은 google.com이있는 첫 번째 탭으로 돌아가 google.com을 bing.com으로 변경합니다. 다음 코드에서도 마찬가지입니다. 다른 새로운 탭이 생성되었지만 첫 번째 탭으로 돌아갑니다. driver.get ("https://github.com/login")이 실행되고 bing.com이 github.com/login이됩니다.
은 내가
하여 현재 보이는 탭에 초점을 맞추고 생각main_window = driver.current_window_handle;
그러나 이것은 잘 작동하지 않았습니다. 3 개의 다른 탭에 3 개의 웹 페이지를 모두로드하려면 어떻게해야합니까?
사양 :
- 셀레늄 3.0.2
- 파이어 폭스 45.0.1
- 우분투 14.04 AMD의 64 비트
- 파이썬 2.7.6
이것은 내가 무엇을 찾고되지 않습니다. 탭을 만들고 새 탭에 초점을 맞추고 싶었습니다. 귀하의 대답은 Firefox의 새로운 창을 만들고 그 사이를 전환하는 것에 관한 것입니다. –
''새로운 탭에 초점을 맞추라 '는게 무슨 뜻이야? 그리고 뭘 위해서? "새 탭"으로 전환한다는 것은 "집중"한다는 의미입니다 ... 맞습니까? – Andersson
정확하지 않습니다. Selenium에서 새 탭으로 전환해도 새 탭에 집중하면 아무 것도 할 수 없습니다. 스위칭과 포커싱은 내가 아는 한 다릅니다. https://gist.github.com/lrhache/7686903에서 코드를 참조하십시오. # 현재 윈도우에 포커스를 두는 것이 있습니다. 사실 현재 보이는 탭에 초점을 맞 춥니 다. -> browser.switch_to_window (main_window) –