Skip to content

Commit d1650bd

Browse files
committed
Add support for element property
Treat element attributes and properties as equal, just like appium-windows-driver.
1 parent 041bd51 commit d1650bd

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ To enable easy switching from appium-windows-driver, there is a rudimentary impl
221221
| GET | /session/{session id}/element/{element id}/selected | Is Element Selected | :white_check_mark: |
222222
| GET | /session/{session id}/element/{element id}/displayed | Is Element Displayed | :white_check_mark: [^isdisplayed] |
223223
| GET | /session/{session id}/element/{element id}/attribute/{name} | Get Element Attribute | :white_check_mark: [^getattribute] |
224-
| GET | /session/{session id}/element/{element id}/property/{name} | Get Element Property | |
224+
| GET | /session/{session id}/element/{element id}/property/{name} | Get Element Property | :white_check_mark: |
225225
| GET | /session/{session id}/element/{element id}/css/{property name} | Get Element CSS Value | N/A |
226226
| GET | /session/{session id}/element/{element id}/text | Get Element Text | :white_check_mark: |
227227
| GET | /session/{session id}/element/{element id}/name | Get Element Tag Name | :white_check_mark: |

src/FlaUI.WebDriver.UITests/ElementTests.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,20 @@ public void GetAttribute_TextBox_ReturnsValue(string attributeName, string expec
366366
Assert.That(value, Is.EqualTo(expectedValue));
367367
}
368368

369+
[TestCase(["ClassName", "TextBox"])]
370+
[TestCase(["FrameworkId", "WPF"])]
371+
[TestCase(["NonExistent", null])]
372+
public void GetProperty_TextBox_ReturnsValue(string attributeName, string expectedValue)
373+
{
374+
var driverOptions = FlaUIDriverOptions.TestApp();
375+
using var driver = new RemoteWebDriver(WebDriverFixture.WebDriverUrl, driverOptions);
376+
var element = driver.FindElement(ExtendedBy.AccessibilityId("TextBox"));
377+
378+
var value = element.GetDomProperty(attributeName);
379+
380+
Assert.That(value, Is.EqualTo(expectedValue));
381+
}
382+
369383
[Test]
370384
public void GetAttribute_DesktopElement_ReturnsAttribute()
371385
{
@@ -395,5 +409,23 @@ public void GetAttribute_PatternProperty_ReturnsValue()
395409

396410
Assert.That(value, Is.EqualTo("On"));
397411
}
412+
413+
[Test]
414+
public void GetProperty_PatternProperty_ReturnsValue()
415+
{
416+
var driverOptions = FlaUIDriverOptions.TestApp();
417+
using var driver = new RemoteWebDriver(WebDriverFixture.WebDriverUrl, driverOptions);
418+
var element = driver.FindElement(ExtendedBy.AccessibilityId("SimpleCheckBox"));
419+
420+
var value = element.GetDomProperty("Toggle.ToggleState");
421+
422+
Assert.That(value, Is.EqualTo("Off"));
423+
424+
element.Click();
425+
426+
value = element.GetDomProperty("Toggle.ToggleState");
427+
428+
Assert.That(value, Is.EqualTo("On"));
429+
}
398430
}
399431
}

src/FlaUI.WebDriver/Controllers/ElementController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ public async Task<ActionResult> ElementSendKeys([FromRoute] string sessionId, [F
229229
}
230230

231231
[HttpGet("{elementId}/attribute/{attributeId}")]
232+
[HttpGet("{elementId}/property/{attributeId}")]
232233
public async Task<ActionResult> GetAttribute([FromRoute] string sessionId, [FromRoute] string elementId, [FromRoute] string attributeId)
233234
{
234235
var session = GetSession(sessionId);

0 commit comments

Comments
 (0)