Added method to add escape character. Code was tested locally at:
facebook-wda: master with changes
WebDriverAgent: de4b1d
iPhone: 6s
iOS: 11.0.3
Xcode:9.0.1
With this fix I do not see no longer problems when I'm trying to find text with ' or " character inside searched text:
elements = s(text="it's me")
elements[0].tap(
... )
Traceback (most recent call last):
File "", line 1, in
File "/Users/jenkins/jenkins_workspace/workspace/iOS_metropcs_mobile_browser_development_wda_2/ios_tests/tmobile_venv/lib/python2.7/site-packages/wda/init.py", line 740, in getattr
return getattr(self.get(), oper)
File "/Users/jenkins/jenkins_workspace/workspace/iOS_metropcs_mobile_browser_development_wda_2/ios_tests/tmobile_venv/lib/python2.7/site-packages/wda/init.py", line 724, in get
elems = self.find_elements()
File "/Users/jenkins/jenkins_workspace/workspace/iOS_metropcs_mobile_browser_development_wda_2/ios_tests/tmobile_venv/lib/python2.7/site-packages/wda/init.py", line 699, in find_elements
for element_id in self.find_element_ids():
File "/Users/jenkins/jenkins_workspace/workspace/iOS_metropcs_mobile_browser_development_wda_2/ios_tests/tmobile_venv/lib/python2.7/site-packages/wda/init.py", line 691, in find_element_ids
return self._wdasearch('class chain', chain)
File "/Users/jenkins/jenkins_workspace/workspace/iOS_metropcs_mobile_browser_development_wda_2/ios_tests/tmobile_venv/lib/python2.7/site-packages/wda/init.py", line 642, in _wdasearch
for v in self.http.post('/elements', {'using': using, 'value': value}).value:
File "/Users/jenkins/jenkins_workspace/workspace/iOS_metropcs_mobile_browser_development_wda_2/ios_tests/tmobile_venv/lib/python2.7/site-packages/wda/init.py", line 101, in fetch
return self._fetch_no_alert(method, url, data)
File "/Users/jenkins/jenkins_workspace/workspace/iOS_metropcs_mobile_browser_development_wda_2/ios_tests/tmobile_venv/lib/python2.7/site-packages/wda/init.py", line 107, in _fetch_no_alert
return httpdo(target_url, method, data)
File "/Users/jenkins/jenkins_workspace/workspace/iOS_metropcs_mobile_browser_development_wda_2/ios_tests/tmobile_venv/lib/python2.7/site-packages/wda/init.py", line 83, in httpdo
raise WDAError(r.status, r.value)
wda.WDAError: WDAError(status=13, value=Unable to parse the format string "name == 'it's me'"
Added method to add escape character. Code was tested locally at: facebook-wda: master with changes WebDriverAgent: de4b1d iPhone: 6s iOS: 11.0.3 Xcode:9.0.1
With this fix I do not see no longer problems when I'm trying to find text with ' or " character inside searched text:
( 0 CoreFoundation 0x00000001838d7d50 + 148
1 libobjc.A.dylib 0x0000000182dec528 objc_exception_throw + 56
2 Foundation 0x00000001841e7fdc + 6128
3 Foundation 0x00000001841e677c + 64
4 WebDriverAgentLib 0x0000000104f40d90 +[FBPredicate predicateWithFormat:] + 128
5 WebDriverAgentLib 0x0000000104f521b0 +[FBClassChainQueryParser compiledQueryWithTokenizedQuery:originalQuery:error:] + 2780
6 WebDriverAgentLib 0x0000000104f52b94 +[FBClassChainQueryParser parseQuery:error:] + 492
7 WebDriverAgentLib 0x0000000104f459e4 -[XCUIElement(FBClassChain) fb_descendantsMatchingClassChain:shouldReturnAfterFirstMatch:] + 112
8 WebDriverAgentLib 0x0000000104f5f990 +[FBFindElementCommands elementsUsing:withValue:under:shouldReturnAfterFirstMatch:] + 868
9 WebDriverAgentLib 0x0000000104f5eb4c +[FBFindElementCommands handleFindElements:] + 344
10 WebDriverAgentLib 0x0000000104f4cb54 -[FBRoute_TargetAction mountRequest:intoResponse:] + 208
11 WebDriverAgentLib 0x0000000104f449a4 37-[FBWebServer registerRouteHandlers:]_block_invoke + 496
12 RoutingHTTPServer 0x00000001086b23cc -[RoutingHTTPServer handleRoute:withRequest:response:] + 144
13 RoutingHTTPServer 0x00000001086b2b80 72-[RoutingHTTPServer routeMethod:withPath:parameters:request:connection:]_block_invoke + 44
14 libdispatch.dylib 0x000000018325d048 + 16
15 libdispatch.dylib 0x000000018326b2a0 + 68
16 libdispatch.dylib 0x000000018325d048 + 16
17 libdispatch.dylib 0x0000000183269b74 + 1016
18 CoreFoundation 0x000000018387ff20 + 12
19 CoreFoundation 0x000000018387dafc + 2012
20 CoreFoundation 0x000000018379e2d8 CFRunLoopRunSpecific + 436
21 Foundation 0x00000001841c66e4 + 304
22 WebDriverAgentLib 0x0000000104f439c4 -[FBWebServer startServing] + 424
23 WebDriverAgentRunner 0x0000000104c97be4 -[UITestingUITests testRunner] + 132
24 CoreFoundation 0x00000001838df6a0 + 144
25 CoreFoundation 0x00000001837be820 + 292
26 XCTest 0x00000001042ec0a8 24-[XCTestCase invokeTest]_block_invoke.275 + 48
27 XCTest 0x0000000104338f08 -[XCTMemoryChecker _assertInvalidObjectsDeallocatedAfterScope:] + 56
28 XCTest 0x00000001042ebe58 24-[XCTestCase invokeTest]_block_invoke + 680
29 XCTest 0x0000000104331780 -[XCUITestContext performInScope:] + 208
30 XCTest 0x00000001042ebba0 -[XCTestCase invokeTest] + 136
31 XCTest 0x00000001042ecc78 26-[XCTestCase performTest:]_block_invoke.382 + 48
32 XCTest 0x0000000104336778 +[XCTContext runInContextForTestCase:block:] + 164
33 XCTest 0x00000001042ec674 -[XCTestCase performTest:] + 596
34 XCTest 0x00000001042e8868 __27-[XCTestSuite performTest:]_block_invoke + 288
35 XCTest 0x00000001042e8290 -[XCTestSuite _performProtectedSectionForTest:testSection:] + 44
36 XCTest 0x00000001042e84a0 -[XCTestSuite performTest:] + 236
37 XCTest 0x00000001042e8868 27-[XCTestSuite performTest:]_block_invoke + 288
38 XCTest 0x00000001042e8290 -[XCTestSuite _performProtectedSectionForTest:testSection:] + 44
39 XCTest 0x00000001042e84a0 -[XCTestSuite performTest:] + 236
40 XCTest 0x00000001042e8868 __27-[XCTestSuite performTest:]_block_invoke + 288
41 XCTest 0x00000001042e8290 -[XCTestSuite _performProtectedSectionForTest:testSection:] + 44
42 XCTest 0x00000001042e84a0 -[XCTestSuite performTest:] + 236
43 XCTest 0x000000010433ff5c __44-[XCTTestRunSession runTestsAndReturnError:]_block_invoke + 44
44 XCTest 0x00000001042fb3e8 -[XCTestObservationCenter _observeTestExecutionForBlock:] + 420
45 XCTest 0x000000010433fdd8 -[XCTTestRunSession runTestsAndReturnError:] + 292
46 XCTest 0x00000001042d7ed0 -[XCTestDriver runTestsAndReturnError:] + 312
47 XCTest 0x0000000104335920 _XCTestMain + 620
48 CoreFoundation 0x000000018388016c + 20
49 CoreFoundation 0x000000018387fa3c + 288
50 CoreFoundation 0x000000018387d74c + 1068
51 CoreFoundation 0x000000018379e2d8 CFRunLoopRunSpecific + 436
52 GraphicsServices 0x000000018562ff84 GSEventRunModal + 100
53 UIKit 0x000000018cd4b880 UIApplicationMain + 208
54 WebDriverAgentRunner-Runner 0x00000001042c0430 WebDriverAgentRunner-Runner + 33840
55 libdyld.dylib 0x00000001832c256c + 4
))