Skip to content

Commit 502afa9

Browse files
authored
Merge branch 'trunk' into petesong/add-practice-example
2 parents 21d942c + 744290a commit 502afa9

File tree

16 files changed

+203
-152
lines changed

16 files changed

+203
-152
lines changed
Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,74 @@
1+
// Licensed to the Software Freedom Conservancy (SFC) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The SFC licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
18+
19+
using System;
120
using Microsoft.VisualStudio.TestTools.UnitTesting;
21+
using OpenQA.Selenium;
22+
using OpenQA.Selenium.Chrome;
23+
using System.Collections.Generic;
224

325
namespace SeleniumDocs.Interactions
426
{
5-
[TestClass]
6-
public class FramesTest : BaseTest
27+
[TestClass]
28+
public class FramesTest
729
{
30+
[TestMethod]
31+
public void TestFrames()
32+
{
33+
WebDriver driver = new ChromeDriver();
34+
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(500);
35+
36+
// Navigate to Url
37+
driver.Url= "https://www.selenium.dev/selenium/web/iframes.html";
38+
//switch To IFrame using Web Element
39+
IWebElement iframe = driver.FindElement(By.Id("iframe1"));
40+
//Switch to the frame
41+
driver.SwitchTo().Frame(iframe);
42+
Assert.AreEqual(true, driver.PageSource.Contains("We Leave From Here"));
43+
//Now we can type text into email field
44+
IWebElement emailE = driver.FindElement(By.Id("email"));
45+
emailE.SendKeys("[email protected]");
46+
emailE.Clear();
47+
driver.SwitchTo().DefaultContent();
48+
49+
50+
//switch To IFrame using name or id
51+
driver.FindElement(By.Name("iframe1-name"));
52+
//Switch to the frame
53+
driver.SwitchTo().Frame(iframe);
54+
Assert.AreEqual(true, driver.PageSource.Contains("We Leave From Here"));
55+
IWebElement email = driver.FindElement(By.Id("email"));
56+
//Now we can type text into email field
57+
email.SendKeys("[email protected]");
58+
email.Clear();
59+
driver.SwitchTo().DefaultContent();
60+
61+
62+
//switch To IFrame using index
63+
driver.SwitchTo().Frame(0);
64+
Assert.AreEqual(true, driver.PageSource.Contains("We Leave From Here"));
65+
66+
//leave frame
67+
driver.SwitchTo().DefaultContent();
68+
Assert.AreEqual(true, driver.PageSource.Contains("This page has iframes"));
69+
70+
//quit the browser
71+
driver.Quit();
72+
}
873
}
974
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Licensed to the Software Freedom Conservancy (SFC) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The SFC licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
18+
19+
using System;
20+
using Microsoft.VisualStudio.TestTools.UnitTesting;
21+
using OpenQA.Selenium;
22+
using OpenQA.Selenium.Chrome;
23+
namespace SeleniumDocumentation.SeleniumInteractions
24+
{
25+
[TestClass]
26+
public class InteractionsTest
27+
{
28+
[TestMethod]
29+
public void TestInteractions()
30+
{
31+
WebDriver driver = new ChromeDriver();
32+
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(500);
33+
34+
// Navigate to Url
35+
driver.Url="https://www.selenium.dev/";
36+
//GetTitle
37+
String title = driver.Title;
38+
Assert.AreEqual(title, "Selenium");
39+
40+
//GetCurrentURL
41+
String url = driver.Url;
42+
Assert.AreEqual(url, "https://www.selenium.dev/");
43+
44+
//quitting driver
45+
driver.Quit(); //close all windows
46+
}
47+
}
48+
}

examples/java/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

website_and_docs/content/documentation/webdriver/bidi/_index.en.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ In order to use WebDriver BiDi, setting the capability in the browser options wi
3232

3333
{{< tabpane langEqualsHeader=true >}}
3434
{{< tab header="Java" >}}
35-
options.setCapability("webSocketUrl", true);
35+
options.setCapability("webSocketUrl", true);
3636
{{< /tab >}}
37-
{{% tab header="Python" text=true %}}
38-
{{< badge-code >}}
37+
{{< tab header="Python" >}}
38+
options.enable_bidi = True
3939
{{% /tab %}}
4040
{{< tab header="CSharp" >}}
4141
UseWebSocketUrl = true,

website_and_docs/content/documentation/webdriver/interactions/_index.en.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ You can read the current page title from the browser:
2323
{{< tab header="Python" text=true >}}
2424
{{< gh-codeblock path="examples/python/tests/interactions/test_interactions.py#L7" >}}
2525
{{< /tab >}}
26-
{{< tab header="CSharp" >}}driver.Title;{{< /tab >}}
26+
{{< tab header="CSharp" text=true >}}
27+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/InteractionsTest.cs#L37" >}}
28+
{{< /tab >}}
2729
{{< tab header="Ruby" text=true >}}
2830
{{< gh-codeblock path="examples/ruby/spec/interactions/browser_spec.rb#L8" >}}
2931
{{< /tab >}}
@@ -46,7 +48,9 @@ You can read the current URL from the browser's address bar using:
4648
{{< tab header="Python" text=true >}}
4749
{{< gh-codeblock path="examples/python/tests/interactions/test_interactions.py#L10" >}}
4850
{{< /tab >}}
49-
{{< tab header="CSharp" >}}driver.Url;{{< /tab >}}
51+
{{< tab header="CSharp" text=true >}}
52+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/InteractionsTest.cs#L41" >}}
53+
{{< /tab >}}
5054
{{< tab header="Ruby" text=true >}}
5155
{{< gh-codeblock path="examples/ruby/spec/interactions/browser_spec.rb#L14" >}}
5256
{{< /tab >}}

website_and_docs/content/documentation/webdriver/interactions/_index.ja.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ aliases: [
2222
{{< tab header="Python" text=true >}}
2323
{{< gh-codeblock path="examples/python/tests/interactions/test_interactions.py#L7" >}}
2424
{{< /tab >}}
25-
{{< tab header="CSharp" >}}driver.Title;{{< /tab >}}
25+
{{< tab header="CSharp" text=true >}}
26+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/InteractionsTest.cs#L37" >}}
27+
{{< /tab >}}
2628
{{< tab header="Ruby" text=true >}}
2729
{{< gh-codeblock path="examples/ruby/spec/interactions/browser_spec.rb#L8" >}}
2830
{{< /tab >}}
@@ -44,7 +46,9 @@ aliases: [
4446
{{< tab header="Python" text=true >}}
4547
{{< gh-codeblock path="examples/python/tests/interactions/test_interactions.py#L10" >}}
4648
{{< /tab >}}
47-
{{< tab header="CSharp" >}}driver.Url;{{< /tab >}}
49+
{{< tab header="CSharp" text=true >}}
50+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/InteractionsTest.cs#L41" >}}
51+
{{< /tab >}}
4852
{{< tab header="Ruby" text=true >}}
4953
{{< gh-codeblock path="examples/ruby/spec/interactions/browser_spec.rb#L14" >}}
5054
{{< /tab >}}

website_and_docs/content/documentation/webdriver/interactions/_index.pt-br.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ Você pode ler o título da página atual no navegador:
2323
{{< tab header="Python" text=true >}}
2424
{{< gh-codeblock path="examples/python/tests/interactions/test_interactions.py#L7" >}}
2525
{{< /tab >}}
26-
{{< tab header="CSharp" >}}driver.Title;{{< /tab >}}
26+
{{< tab header="CSharp" text=true >}}
27+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/InteractionsTest.cs#L37" >}}
28+
{{< /tab >}}
2729
{{< tab header="Ruby" text=true >}}
2830
{{< gh-codeblock path="examples/ruby/spec/interactions/browser_spec.rb#L8" >}}
2931
{{< /tab >}}
@@ -45,7 +47,9 @@ Você pode ler a URL atual na barra de endereço do navegador usando:
4547
{{< tab header="Python" text=true >}}
4648
{{< gh-codeblock path="examples/python/tests/interactions/test_interactions.py#L10" >}}
4749
{{< /tab >}}
48-
{{< tab header="CSharp" >}}driver.Url;{{< /tab >}}
50+
{{< tab header="CSharp" text=true >}}
51+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/InteractionsTest.cs#L41" >}}
52+
{{< /tab >}}
4953
{{< tab header="Ruby" text=true >}}
5054
{{< gh-codeblock path="examples/ruby/spec/interactions/browser_spec.rb#L14" >}}
5155
{{< /tab >}}

website_and_docs/content/documentation/webdriver/interactions/_index.zh-cn.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ aliases: [
2222
{{< tab header="Python" text=true >}}
2323
{{< gh-codeblock path="examples/python/tests/interactions/test_interactions.py#L7" >}}
2424
{{< /tab >}}
25-
{{< tab header="CSharp" >}}driver.Title;{{< /tab >}}
25+
{{< tab header="CSharp" text=true >}}
26+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/InteractionsTest.cs#L37" >}}
27+
{{< /tab >}}
2628
{{< tab header="Ruby" text=true >}}
2729
{{< gh-codeblock path="examples/ruby/spec/interactions/browser_spec.rb#L8" >}}
2830
{{< /tab >}}
@@ -43,7 +45,9 @@ aliases: [
4345
{{< tab header="Python" text=true >}}
4446
{{< gh-codeblock path="examples/python/tests/interactions/test_interactions.py#L10" >}}
4547
{{< /tab >}}
46-
{{< tab header="CSharp" >}}driver.Url;{{< /tab >}}
48+
{{< tab header="CSharp" text=true >}}
49+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/InteractionsTest.cs#L41" >}}
50+
{{< /tab >}}
4751
{{< tab header="Ruby" text=true >}}
4852
{{< gh-codeblock path="examples/ruby/spec/interactions/browser_spec.rb#L14" >}}
4953
{{< /tab >}}

website_and_docs/content/documentation/webdriver/interactions/frames.en.md

Lines changed: 12 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,9 @@ driver.switch_to.frame(iframe)
8585
# Now click on button
8686
driver.find_element(By.TAG_NAME, 'button').click()
8787
{{< /tab >}}
88-
{{< tab header="CSharp" >}}
89-
//Store the web element
90-
IWebElement iframe = driver.FindElement(By.CssSelector("#modal>iframe"));
91-
92-
//Switch to the frame
93-
driver.SwitchTo().Frame(iframe);
94-
95-
//Now we can click the button
96-
driver.FindElement(By.TagName("button")).Click();
97-
{{< /tab >}}
88+
{{< tab header="CSharp" text=true >}}
89+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/FramesTest.cs#L38-L46" >}}
90+
{{< /tab >}}
9891
{{< tab header="Ruby" >}}
9992
# Store iframe web element
10093
iframe = driver.find_element(:css,'#modal > iframe')
@@ -144,16 +137,9 @@ driver.switch_to.frame('buttonframe')
144137
# Now, Click on the button
145138
driver.find_element(By.TAG_NAME, 'button').click()
146139
{{< /tab >}}
147-
{{< tab header="CSharp" >}}
148-
//Using the ID
149-
driver.SwitchTo().Frame("buttonframe");
150-
151-
//Or using the name instead
152-
driver.SwitchTo().Frame("myframe");
153-
154-
//Now we can click the button
155-
driver.FindElement(By.TagName("button")).Click();
156-
{{< /tab >}}
140+
{{< tab header="CSharp" text=true >}}
141+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/FramesTest.cs#L50-L58" >}}
142+
{{< /tab >}}
157143
{{< tab header="Ruby" >}}
158144
# Switch by ID
159145
driver.switch_to.frame 'buttonframe'
@@ -199,17 +185,9 @@ queried using _window.frames_ in JavaScript.
199185
# Switch to the second frame
200186
driver.switch_to.frame(1)
201187
{{< /tab >}}
202-
{{< tab header="CSharp" >}}
203-
// Switches to the second frame
204-
driver.SwitchTo().Frame(1);
205-
{{< /tab >}}
206-
{{< tab header="Python" >}}
207-
# switching to second iframe based on index
208-
iframe = driver.find_elements(By.TAG_NAME,'iframe')[1]
209-
210-
# switch to selected iframe
211-
driver.switch_to.frame(iframe)
212-
{{< /tab >}}
188+
{{< tab header="CSharp" text=true >}}
189+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/FramesTest.cs#L62-L63" >}}
190+
{{< /tab >}}
213191
{{< tab header="JavaScript" >}}
214192
// Switches to the second frame
215193
await driver.switchTo().frame(1);
@@ -236,10 +214,9 @@ like so:
236214
# switch back to default content
237215
driver.switch_to.default_content()
238216
{{< /tab >}}
239-
{{< tab header="CSharp" >}}
240-
// Return to the top level
241-
driver.SwitchTo().DefaultContent();
242-
{{< /tab >}}
217+
{{< tab header="CSharp" text=true >}}
218+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/FramesTest.cs#L66-L67" >}}
219+
{{< /tab >}}
243220
{{< tab header="Ruby" >}}
244221
# Return to the top level
245222
driver.switch_to.default_content

website_and_docs/content/documentation/webdriver/interactions/frames.ja.md

Lines changed: 12 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,9 @@ driver.switch_to.frame(iframe)
7474
# Now click on button
7575
driver.find_element(By.TAG_NAME, 'button').click()
7676
{{< /tab >}}
77-
{{< tab header="CSharp" >}}
78-
//Store the web element
79-
IWebElement iframe = driver.FindElement(By.CssSelector("#modal>iframe"));
80-
81-
//Switch to the frame
82-
driver.SwitchTo().Frame(iframe);
83-
84-
//Now we can click the button
85-
driver.FindElement(By.TagName("button")).Click();
86-
{{< /tab >}}
77+
{{< tab header="CSharp" text=true >}}
78+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/FramesTest.cs#L38-L46" >}}
79+
{{< /tab >}}
8780
{{< tab header="Ruby" >}}
8881
# Store iframe web element
8982
iframe = driver.find_element(:css,'#modal > iframe')
@@ -132,23 +125,9 @@ driver.switch_to.frame('buttonframe')
132125
# Now, Click on the button
133126
driver.find_element(By.TAG_NAME, 'button').click()
134127
{{< /tab >}}
135-
{{< tab header="CSharp" >}}
136-
//Using the ID
137-
driver.SwitchTo().Frame("buttonframe");
138-
139-
//Or using the name instead
140-
driver.SwitchTo().Frame("myframe");
141-
142-
//Now we can click the button
143-
driver.FindElement(By.TagName("button")).Click();
144-
{{< /tab >}}
145-
{{< tab header="Ruby" >}}
146-
# Switch by ID
147-
driver.switch_to.frame 'buttonframe'
148-
149-
# Now, Click on the button
150-
driver.find_element(:tag_name,'button').click
151-
{{< /tab >}}
128+
{{< tab header="CSharp" text=true >}}
129+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/FramesTest.cs#L50-L58" >}}
130+
{{< /tab >}}
152131
{{< tab header="JavaScript" >}}
153132
// Using the ID
154133
await driver.switchTo().frame('buttonframe');
@@ -183,10 +162,9 @@ JavaScriptの _window.frames_ を使用して照会できるように、Frameの
183162
# Switch to the second frame
184163
driver.switch_to.frame(1)
185164
{{< /tab >}}
186-
{{< tab header="CSharp" >}}
187-
// Switches to the second frame
188-
driver.SwitchTo().Frame(1);
189-
{{< /tab >}}
165+
{{< tab header="CSharp" text=true >}}
166+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/FramesTest.cs#L62-L63" >}}
167+
{{< /tab >}}
190168
{{< tab header="Python" >}}
191169
# switching to second iframe based on index
192170
iframe = driver.find_elements(By.TAG_NAME,'iframe')[1]
@@ -217,10 +195,9 @@ iFrameまたはFrameセットを終了するには、次のようにデフォル
217195
# switch back to default content
218196
driver.switch_to.default_content()
219197
{{< /tab >}}
220-
{{< tab header="CSharp" >}}
221-
// Return to the top level
222-
driver.SwitchTo().DefaultContent();
223-
{{< /tab >}}
198+
{{< tab header="CSharp" text=true >}}
199+
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/FramesTest.cs#L66-L67" >}}
200+
{{< /tab >}}
224201
{{< tab header="Ruby" >}}
225202
# Return to the top level
226203
driver.switch_to.default_content

0 commit comments

Comments
 (0)