2017-11-08 1 views
-1

방금 ​​셀렌으로 시작했고 작은 문제가 발생했습니다. 기본적으로 클릭 할 때 새 탭에서 열리는 링크를 클릭해야하는 웹 페이지가 있습니다. 그 탭에 대해 몇 가지 작업을하고 그 탭을 닫고 원래의 웹 페이지에서 다른 링크를 클릭하고 싶습니다. 셀렌으로 탭을 사용하는 방법 (파이썬 포함)

따라와

내 코드입니다 :

w.get("https:\link1")

opens the given link w.find_element_by_class_name("an_element").click()

clicks an element with the given class name which opens in a new tab

w.find_element_by_class_name("another_element")

clicks an element on the opened tab

w.close()

closes the opened tab

w.find_element_by_class_name("an_element").click()

clicks a new element on the previous tab

But I get the following error: w.get("https:\link1")

opens the given link w.find_element_by_class_name("an_element").click()

clicks an element with the given class name which opens in a new tab

w.find_element_by_class_name("another_element")

clicks an element on the opened tab

w.close()

closes the opened tab

w.find_element_by_class_name("an_element").click()

clicks a new element on the previous tab

그러나 나는 다음과 같은 오류 얻을 :

메시지 : 그런 세션 가 어떻게 새 탭 창에서 일부 요소를 클릭하지 않고 보장을 닫을 수 있습니다 창문을 닫지 않아?

+0

코드를 코드로 지정하십시오. 서식 지정 도움말이 안내해줍니다. – JeffC

+0

작업이 끝나면 새로 열린 창을 닫아야합니다. 창을 닫으면 원래 창에 액세스 할 수 없습니다. 원래 창에 액세스하는 방법에 대한 도움이 필요하십니까? –

+0

게시 한 링크를 읽으십시오. – JeffC

답변

1
# driver = w 
driver.find_element_by_class_name("new window link").click() 

# open a new tab but your driver is still pointing to original tab.So, 

new_driver_handel = driver.window_handles[-1] 
# -1 indicate last tab 
driver.switch_to.window(new_driver_handel) 
### 
now perform all the activities you should do in new tab using driver 
### 
# at last close the driver 
driver.close() 

# Now again you have to point back to original tab 
main_driver_handel = driver.window_handles[-1] 
driver.switch_to.window(main_driver_handel) 

# By doing this also restores all the session which was there in original tab 
+0

감사합니다. 한 가지 더 . 팝업 창과 함께 작동합니까? –