2016-04-22 30 views
1

我已經嵌入部分下面的命令中的getValue實際上是選擇器樹的表示,導致異常發生在第四個)。前三項工作很好。但是,第四個不會在下面的日誌中生成異常。請注意,在第三個中,我使用了相同的選擇器,導致異常並正常工作。我去了那裏發生這種情況採用以下方式查詢(同上第3和第4個查詢)的頁面和正常工作,以及:NightwatchJS不能將部分

document.querySelector('.keystone-body form .field-type-text[for="name"]') 

Nightwatch日誌:

✔ Element <Section[name=form],Section[name=nameList],Section[name=nameField],Element[[email protected]]> was visible after 64 milliseconds. 
✔ Passed [equal]: Name Field Test 1 == Name Field Test 1 
***result: {"state":"success","sessionId":"72e0085f-086a-443e-b71f-e893fcbd4fdc","hCode":484670138,"value":null,"class":"org.openqa.selenium.remote.Response","status":0} 
***result: {"status":-1,"value":{"additionalInformation":"\nDriver info: driver.version: unknown","localizedMessage":"Unable to locate element: {\"method\":\"css selector\",\"selector\":\".field-type-text[for=\\\"name\\\"]\"}\nFor documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html\nBuild info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:06:42'\nSystem info: host: 'XPS8500', ip: '10.0.0.208', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_31'\nDriver info: driver.version: unknown","supportUrl":"http://seleniumhq.org/exceptions/no_such_element.html","systemInformation":"System info: host: 'XPS8500', ip: '10.0.0.208', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_31'","cause":null,"suppressed":[],"message":"Unable to locate element: {\"method\":\"css selector\",\"selector\":\".field-type-text[for=\\\"name\\\"]\"}\nFor documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html\nBuild info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:06:42'\nSystem info: host: 'XPS8500', ip: '10.0.0.208', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_31'\nDriver info: driver.version: unknown","hCode":2047706588,"class":"org.openqa.selenium.NoSuchElementException","buildInformation":{"buildRevision":"4c2593c","buildTime":"2016-02-11 19:06:42","releaseLabel":"2.52.0","hCode":825790507,"class":"org.openqa.selenium.internal.BuildInfo"}},"errorStatus":7,"error":"An element could not be located on the page using the given search parameters."} 
ERROR: Unable to locate element: "Section[name=form],Section[name=nameList],Section[name=nameField],Element[[email protected]]" using: recursion 
    at Section.getValue (C:\Users\Joe\git\prs\node_modules\nightwatch\lib\page-object\command-wrapper.js:103:25) 
    at Section.NameList.sections.nameField.commands.verify (C:\Users\Joe\git\prs\test\e2e\adminUI\pages\lists\name.js:35:9) 
    at Object.module.exports.Name field can be created via the initial modal (C:\Users\Joe\git\prs\test\e2e\adminUI\tests\group005Fields\uxTestNameField.js:51:5) 
    at Module.call (C:\Users\Joe\git\prs\node_modules\nightwatch\lib\runner\module.js:63:34) 
    at C:\Users\Joe\git\prs\node_modules\nightwatch\lib\runner\testcase.js:97:29 
    at _fulfilled (C:\Users\Joe\git\prs\node_modules\nightwatch\node_modules\q\q.js:834:54) 
    at self.promiseDispatch.done (C:\Users\Joe\git\prs\node_modules\nightwatch\node_modules\q\q.js:863:30) 
    at Promise.promise.promiseDispatch (C:\Users\Joe\git\prs\node_modules\nightwatch\node_modules\q\q.js:796:13) 
    at C:\Users\Joe\git\prs\node_modules\nightwatch\node_modules\q\q.js:556:49 
    at runSingle (C:\Users\Joe\git\prs\node_modules\nightwatch\node_modules\q\q.js:137:13) 
    at flush (C:\Users\Joe\git\prs\node_modules\nightwatch\node_modules\q\q.js:125:13) 
    at nextTickCallbackWith0Args (node.js:419:9) 
    at process._tickCallback (node.js:348:13) 
ERROR: Unable to locate element: "Section[name=form],Section[name=nameList],Section[name=nameField],Element[[email protected]]" using: recursion 

硒日誌:

18:19:44.893 INFO - Executing: [find elements: By.cssSelector: .keystone-body])^M 
18:19:44.901 INFO - Done: [find elements: By.cssSelector: .keystone-body]^M 
18:19:44.905 INFO - Executing: [find child elements: 20 [[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body], By.cssSelector: form])^M 
18:19:44.911 INFO - Done: [find child elements: 20 [[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body], By.cssSelector: form]^M 
18:19:44.915 INFO - Executing: [find child elements: 22 [[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form], By.cssSelector: .field-type-text[for="name"]])^M 
18:19:44.915 INFO - Executing: [find child elements: 21 [[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form], By.cssSelector: .field-type-text[for="name"]])^M 
18:19:44.924 INFO - Done: [find child elements: 22 [[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form], By.cssSelector: .field-type-text[for="name"]]^M 
18:19:44.932 INFO - Done: [find child elements: 21 [[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form], By.cssSelector: .field-type-text[for="name"]]^M 
18:19:44.934 INFO - Executing: [find child elements: 23 [[[[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form]] -> css selector: .field-type-text[for="name"]], By.cssSelector: input[name="name"]])^M 
18:19:44.940 INFO - Done: [find child elements: 23 [[[[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form]] -> css selector: .field-type-text[for="name"]], By.cssSelector: input[name="name"]]^M 
18:19:44.943 INFO - Executing: [is displayed: 24 [[[[[[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form]] -> css selector: .field-type-text[for="name"]]] -> css selector: input[name="name"]]])^M 
18:19:44.954 INFO - Done: [is displayed: 24 [[[[[[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form]] -> css selector: .field-type-text[for="name"]]] -> css selector: input[name="name"]]]^M 
18:19:44.956 INFO - Executing: [find element: By.cssSelector: .keystone-body form .field-type-text[for="name"] input[name="name"]])^M 
18:19:44.962 INFO - Done: [find element: By.cssSelector: .keystone-body form .field-type-text[for="name"] input[name="name"]]^M 
18:19:44.964 INFO - Executing: [get element attribute: 24 [[[[[[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form]] -> css selector: .field-type-text[for="name"]]] -> css selector: input[name="name"]], value])^M 
18:19:44.970 INFO - Done: [get element attribute: 24 [[[[[[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form]] -> css selector: .field-type-text[for="name"]]] -> css selector: input[name="name"]], value]^M 
18:19:44.973 INFO - Executing: [find element: By.cssSelector: .keystone-body form .field-type-text[for="name"]])^M 
18:19:44.978 INFO - Done: [find element: By.cssSelector: .keystone-body form .field-type-text[for="name"]]^M 
18:19:44.980 INFO - Executing: [get element attribute: 23 [[[[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form]] -> css selector: .field-type-text[for="name"]], value])^M 
18:19:44.987 INFO - Done: [get element attribute: 23 [[[[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form]] -> css selector: .field-type-text[for="name"]], value]^M 
18:19:44.991 INFO - Executing: [find element: By.cssSelector: .keystone-body])^M 
18:19:44.997 INFO - Done: [find element: By.cssSelector: .keystone-body]^M 
18:19:45.000 INFO - Executing: [find child element: 20 [[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body], By.cssSelector: form])^M 
18:19:45.007 INFO - Done: [find child element: 20 [[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body], By.cssSelector: form]^M 
18:19:45.012 INFO - Executing: [find child element: 21 [[[[FirefoxDriver: firefox on WINDOWS (237d3a34-9cc3-484e-8d5a-8a01ceb65c41)] -> css selector: .keystone-body]] -> css selector: form], By.cssSelector: .field-type-text[for="name"]])^M 
18:19:45.253 WARN - Exception thrown^M 
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"css selector","selector":".field-type-text[for=\"name\"]"} 

我已經圍繞這一個,似乎無法到達根本原因。任何指針將不勝感激!

回答

0

事實證明,頁面有一個非常嵌入的小形式,以某種方式拋出生成的部分選擇器。

+0

你是如何解決這個問題的?我有同樣的問題,我一直在繞圈,而我無法解決它。似乎我剛剛爲此打開了一個相同的問題,也許它是重複的。 – anasarbescu

+0

@anasarbescu在我的情況我只是讓選擇器更具體的目標是實際的正確形式。 – webteckie

+0

好的,謝謝,也許我可以和我一起玩更多,也許我很幸運。 :-) – anasarbescu