Skip to content

Commit 069eb4e

Browse files
Updating window switching tests for what works with Marionette
1 parent 55d1271 commit 069eb4e

File tree

1 file changed

+33
-16
lines changed

1 file changed

+33
-16
lines changed

py/test/selenium/webdriver/common/window_switching_tests.py

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@ def testShouldSwitchFocusToANewWindowWhenItIsOpenedAndNotStopFutureOperations(se
3030

3131
self.driver.find_element_by_link_text("Open new window").click()
3232
self.assertEqual(self.driver.title, "XHTML Test Page")
33-
34-
self.driver.switch_to.window("result")
33+
handles = self.driver.window_handles
34+
handles.remove(current)
35+
self.driver.switch_to.window(handles[0])
3536
self.assertEqual(self.driver.title, "We Arrive Here")
3637

3738
self._loadPage("iframes")
3839
handle = self.driver.current_window_handle
3940
self.driver.find_element_by_id("iframe_page_heading")
40-
self.driver.switch_to.frame("iframe1")
41+
self.driver.switch_to.frame(self.driver.find_element(By.ID, "iframe1"))
4142

4243
self.assertEqual(self.driver.current_window_handle, handle)
4344

@@ -56,12 +57,14 @@ def testShouldThrowNoSuchWindowException(self):
5657
self.driver.switch_to.window(current)
5758

5859
@pytest.mark.ignore_chrome
60+
@pytest.mark.ignore_marionette
5961
def testShouldThrowNoSuchWindowExceptionOnAnAttemptToGetItsHandle(self):
6062
self._loadPage("xhtmlTest")
6163
current = self.driver.current_window_handle
6264
self.driver.find_element(By.LINK_TEXT,"Open new window").click()
63-
64-
self.driver.switch_to.window("result")
65+
handles = self.driver.window_handles
66+
handles.remove(current)
67+
self.driver.switch_to.window(handles[0])
6568
self.driver.close()
6669

6770
try :
@@ -74,13 +77,15 @@ def testShouldThrowNoSuchWindowExceptionOnAnAttemptToGetItsHandle(self):
7477

7578
@pytest.mark.ignore_chrome
7679
@pytest.mark.ignore_ie
80+
@pytest.mark.ignore_marionette
7781
def testShouldThrowNoSuchWindowExceptionOnAnyOperationIfAWindowIsClosed(self):
7882
self._loadPage("xhtmlTest")
7983
current = self.driver.current_window_handle
8084

8185
self.driver.find_element(By.LINK_TEXT,"Open new window").click()
82-
83-
self.driver.switch_to.window("result")
86+
handles = self.driver.window_handles
87+
handles.remove(current)
88+
self.driver.switch_to.window(handles[0])
8489
self.driver.close()
8590
try:
8691
try :
@@ -99,12 +104,15 @@ def testShouldThrowNoSuchWindowExceptionOnAnyOperationIfAWindowIsClosed(self):
99104

100105
@pytest.mark.ignore_chrome
101106
@pytest.mark.ignore_ie
107+
@pytest.mark.ignore_marionette
102108
def testShouldThrowNoSuchWindowExceptionOnAnyElementOperationIfAWindowIsClosed(self):
103109
self._loadPage("xhtmlTest")
104110
current = self.driver.current_window_handle
105111
self.driver.find_element(By.LINK_TEXT,"Open new window").click()
106112

107-
self.driver.switch_to.window("result")
113+
handles = self.driver.window_handles
114+
handles.remove(current)
115+
self.driver.switch_to.window(handles[0])
108116
element = self.driver.find_element_by_tag_name("body")
109117
self.driver.close()
110118

@@ -116,37 +124,43 @@ def testShouldThrowNoSuchWindowExceptionOnAnyElementOperationIfAWindowIsClosed(s
116124
finally:
117125
self.driver.switch_to.window(current)
118126

127+
@pytest.mark.ignore_marionette
119128
def testClickingOnAButtonThatClosesAnOpenWindowDoesNotCauseTheBrowserToHang(self):
120129
self._loadPage("xhtmlTest")
121130

122-
currentHandle = self.driver.current_window_handle
131+
current = self.driver.current_window_handle
123132

124133
self.driver.find_element_by_name("windowThree").click()
125134

126-
self.driver.switch_to.window("result")
135+
handles = self.driver.window_handles
136+
handles.remove(current)
137+
self.driver.switch_to.window(handles[0])
127138

128139
try:
129140
self.driver.find_element_by_id("close").click()
130141
finally:
131-
self.driver.switch_to.window(currentHandle)
142+
self.driver.switch_to.window(current)
132143
self.driver.find_element_by_id("linkId")
133144

145+
@pytest.mark.ignore_marionette
134146
def testCanCallGetWindowHandlesAfterClosingAWindow(self):
135147
self._loadPage("xhtmlTest")
136148

137-
currentHandle = self.driver.current_window_handle
149+
current = self.driver.current_window_handle
138150

139151
self.driver.find_element_by_name("windowThree").click()
140152

141-
self.driver.switch_to.window("result")
153+
handles = self.driver.window_handles
154+
handles.remove(current)
155+
self.driver.switch_to.window(handles[0])
142156

143157
try:
144158
self.driver.find_element_by_id("close").click()
145159
all_handles = self.driver.window_handles
146160

147161
self.assertEqual(1, len(all_handles))
148162
finally:
149-
self.driver.switch_to.window(currentHandle)
163+
self.driver.switch_to.window(current)
150164

151165
def testCanObtainAWindowHandle(self):
152166
self._loadPage("xhtmlTest")
@@ -167,14 +181,17 @@ def testFailingToSwitchToAWindowLeavesTheCurrentWindowAsIs(self):
167181

168182
self.assertEqual(current, new_handle)
169183

184+
@pytest.mark.ignore_marionette
170185
def testThatAccessingFindingAnElementAfterWindowIsClosedAndHaventswitchedDoesntCrash(self):
171186
self._loadPage("xhtmlTest")
172187

173-
currentHandle = self.driver.current_window_handle
188+
current = self.driver.current_window_handle
174189

175190
self.driver.find_element_by_name("windowThree").click()
176191

177-
self.driver.switch_to.window("result")
192+
handles = self.driver.window_handles
193+
handles.remove(current)
194+
self.driver.switch_to.window(handles[0])
178195

179196
try:
180197
self.driver.find_element_by_id("close").click()

0 commit comments

Comments
 (0)