@@ -60,12 +60,6 @@ private async Task<ActionResult> FindElementFrom(Func<AutomationElement> startNo
6060 {
6161 element = await Wait . Until ( ( ) => startNode ( ) . FindFirstByXPath ( findElementRequest . Value ) , element => element != null , session . ImplicitWaitTimeout ) ;
6262 }
63- else if ( findElementRequest . Using == "css selector" )
64- {
65- var ( strategy , value ) = ParseCssSelector ( findElementRequest . Value ) ;
66- var condition = _conditionParser . ParseCondition ( session . Automation . ConditionFactory , strategy , value ) ;
67- element = await Wait . Until ( ( ) => startNode ( ) . FindFirstDescendant ( condition ) , element => element != null , session . ImplicitWaitTimeout ) ;
68- }
6963 else
7064 {
7165 var condition = _conditionParser . ParseCondition ( session . Automation . ConditionFactory , findElementRequest . Using , findElementRequest . Value ) ;
@@ -77,7 +71,7 @@ private async Task<ActionResult> FindElementFrom(Func<AutomationElement> startNo
7771 return NoSuchElement ( findElementRequest ) ;
7872 }
7973
80- var knownElement = session . GetOrAddKnownElement ( element ) ;
74+ var knownElement = session . GetOrAddKnownElement ( element ) ;
8175 return await Task . FromResult ( WebDriverResult . Success ( new FindElementResponse
8276 {
8377 ElementReference = knownElement . ElementReference ,
@@ -91,12 +85,6 @@ private async Task<ActionResult> FindElementsFrom(Func<AutomationElement> startN
9185 {
9286 elements = await Wait . Until ( ( ) => startNode ( ) . FindAllByXPath ( findElementRequest . Value ) , elements => elements . Length > 0 , session . ImplicitWaitTimeout ) ;
9387 }
94- else if ( findElementRequest . Using == "css selector" )
95- {
96- var ( strategy , value ) = ParseCssSelector ( findElementRequest . Value ) ;
97- var condition = _conditionParser . ParseCondition ( session . Automation . ConditionFactory , strategy , value ) ;
98- elements = await Wait . Until ( ( ) => startNode ( ) . FindAllDescendants ( condition ) , elements => elements . Length > 0 , session . ImplicitWaitTimeout ) ;
99- }
10088 else
10189 {
10290 var condition = _conditionParser . ParseCondition ( session . Automation . ConditionFactory , findElementRequest . Using , findElementRequest . Value ) ;
@@ -152,53 +140,5 @@ private Session GetSession(string sessionId)
152140 session . SetLastCommandTimeToNow ( ) ;
153141 return session ;
154142 }
155-
156- private ( string strategy , string value ) ParseCssSelector ( string cssSelector )
157- {
158- var nameMatch = Regex . Match ( cssSelector , @"^\*?\[name\s*=\s*""(.+?)""\]$" , RegexOptions . IgnoreCase ) ;
159- if ( nameMatch . Success )
160- {
161- return ( "name" , UnescapeCssValue ( nameMatch . Groups [ 1 ] . Value ) ) ;
162- }
163-
164- var idMatch = Regex . Match ( cssSelector , @"^#((?:[\w-]|\\[0-9a-fA-F]{1,6}\s?)+)$" ) ;
165- if ( idMatch . Success )
166- {
167- return ( "id" , UnescapeCssValue ( idMatch . Groups [ 1 ] . Value ) ) ;
168- }
169-
170- var classMatch = Regex . Match ( cssSelector , @"^\.((?:[\w-]|\\[0-9a-fA-F]{1,6}\s?)+)$" ) ;
171- if ( classMatch . Success )
172- {
173- return ( "class name" , UnescapeCssValue ( classMatch . Groups [ 1 ] . Value ) ) ;
174- }
175-
176- var idAttrMatch = Regex . Match ( cssSelector , @"^\*?\[id\s*=\s*""(.+?)""\]$" , RegexOptions . IgnoreCase ) ;
177- if ( idAttrMatch . Success )
178- {
179- return ( "id" , UnescapeCssValue ( idAttrMatch . Groups [ 1 ] . Value ) ) ;
180- }
181-
182- var classAttrMatch = Regex . Match ( cssSelector , @"^\*?\[class\s*=\s*""(.+?)""\]$" , RegexOptions . IgnoreCase ) ;
183- if ( classAttrMatch . Success )
184- {
185- return ( "class name" , UnescapeCssValue ( classAttrMatch . Groups [ 1 ] . Value ) ) ;
186- }
187-
188- throw WebDriverResponseException . UnsupportedOperation (
189- $ "CSS selector '{ cssSelector } ' is not supported. Only simple selectors are allowed: " +
190- "#id, .className, [name=\" value\" ], [id=\" value\" ], [class=\" value\" ]"
191- ) ;
192- }
193-
194- private string UnescapeCssValue ( string cssValue )
195- {
196- var result = Regex . Replace ( cssValue , @"\\([0-9a-fA-F]{1,6})\s?" , m =>
197- ( ( char ) Convert . ToInt32 ( m . Groups [ 1 ] . Value , 16 ) ) . ToString ( ) ) ;
198-
199- result = Regex . Replace ( result , @"\\(.)" , "$1" ) ;
200-
201- return result ;
202- }
203143 }
204144}
0 commit comments