You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What steps will reproduce the problem? My Robotium test for an Android application is as follows.
public void testLogin()
{
solo.waitForView(android.webkit.WebView.class);
logWebElementsFound();
}
/**
* Logs the WebElements currently displayed. /
private void logWebElementsFound(){
for(WebElement webElement : solo.getCurrentWebElements()){
Log.d("Robotium", "id: '" + webElement.getId() + "' text: '" + webElement.getText() + "' name: '" + webElement.getName() +
"' class name: '" + webElement.getClassName() + "' tag name: '" + webElement.getTagName() + "'");
}
} What is the expected output? What do you see instead? I am trying to list all the elements of my WebView in the logs.
I do not see those and see the following error within my Launcher Activity for a few seconds. After a few seconds, the content on my activity is loaded but I still do not see any WebView elements in the logs.
I was able to copy the error from my screen when I was "debugging" the test (as opposed to running it). What version of the product are you using? On what operating system? robotium-solo-5.1.jar
Android KitKat Please provide any additional information below. ERROR: Illegal character in fragment at index 5655: javascript:/* * Used by the web methods. * * @author Renas Reda, [email protected] * */ function allWebElements() { for (var key in document.all){ try{ promptElement(document.all[key]); }catch(ignored){} } finished(); } function allTexts() { var range = document.createRange(); var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,false); while(n=walk.nextNode()){ try{ promptText(n, range); }catch(ignored){} } finished(); } function clickElement(element){ var e = document.createEvent('MouseEvents'); e.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null); element.dispatchEvent(e); } function id(id, click) { var element = document.getElementById(id); if(element != null){ if(click == 'true'){ clickElement(element); } else{ promptElement(element); } } else { for (var key in document.all){ try{ element = document.all[key]; if(element.id == id) { if(click == 'true'){ clickElement(element); return; } else{ promptElement(element); } } } catch(ignored){} } } finished(); } function xpath(xpath, click) { var elements = document.evaluate(xpath, document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); if (elements){ var element = elements.iterateNext(); while(element) { if(click == 'true'){ clickElement(element); return; } else{ promptElement(element); element = result.iterateNext(); } } finished(); } } function cssSelector(cssSelector, click) { var elements = document.querySelectorAll(cssSelector); for (var key in elements) { if(elements != null){ try{ if(click == 'true'){ clickElement(elements[key]); return; } else{ promptElement(elements[key]); } }catch(ignored){} } } finished(); } function name(name, click) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,null,false); while(n=walk.nextNode()){ try{ var attributeName = n.getAttribute('name'); if(attributeName != null && attributeName.trim().length>0 && attributeName == name){ if(click == 'true'){ clickElement(n); return; } else{ promptElement(n); } } }catch(ignored){} } finished(); } function className(nameOfClass, click) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,null,false); while(n=walk.nextNode()){ try{ var className = n.className; if(className != null && className.trim().length>0 && className == nameOfClass) { if(click == 'true'){ clickElement(n); return; } else{ promptElement(n); } } }catch(ignored){} } finished(); } function textContent(text, click) { var range = document.createRange(); var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,false); while(n=walk.nextNode()){ try{ var textContent = n.textContent; if(textContent.trim() == text.trim()){ if(click == 'true'){ clickElement(n); return; } else{ promptText(n, range); } } }catch(ignored){} } finished(); } function tagName(tagName, click) { var elements = document.getElementsByTagName(tagName); for (var key in elements) { if(elements != null){ try{ if(click == 'true'){ clickElement(elements[key]); return; } else{ promptElement(elements[key]); } }catch(ignored){} } } finished(); } function enterTextById(id, text) { var element = document.getElementById(id); if(element != null) element.value = text; finished(); } function enterTextByXpath(xpath, text) { var element = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ).singleNodeValue; if(element != null) element.value = text; finished(); } function enterTextByCssSelector(cssSelector, text) { var element = document.querySelector(cssSelector); if(element != null) element.value = text; finished(); } function enterTextByName(name, text) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,null,false); while(n=walk.nextNode()){ var attributeName = n.getAttribute('name'); if(attributeName != null && attributeName.trim().length>0 && attributeName == name) n.value=text; } finished(); } function enterTextByClassName(name, text) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,null,false); while(n=walk.nextNode()){ var className = n.className; if(className != null && className.trim().length>0 && className == name) n.value=text; } finished(); } function enterTextByTextContent(textContent, text) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,false); while(n=walk.nextNode()){ var textValue = n.textContent; if(textValue == textContent) n.parentNode.value = text; } finished(); } function enterTextByTagName(tagName, text) { var elements = document.getElementsByTagName(tagName); if(elements != null){ elements[0].value = text; } finished(); } function promptElement(element) { var id = element.id; var text = element.innerText; if(text.trim().length == 0){ text = element.value; } var name = element.getAttribute('name'); var className = element.className; var tagName = element.tagName; var attributes = ""; var htmlAttributes = element.attributes; for (var i = 0, htmlAttribute; htmlAttribute = htmlAttributes[i]; i++){ attributes += htmlAttribute.name + "::" + htmlAttribute.value; if (i + 1 < htmlAttributes.length) { attributes += "#$"; } } var rect = element.getBoundingClientRect(); if(rect.width > 0 && rect.height > 0 && rect.left >= 0 && rect.top >= 0){ prompt(id + ';,' + text + ';,' + name + ";," + className + ";," + tagName + ";," + rect.left + ';,' + rect.top + ';,' + rect.width + ';,' + rect.height + ';,' + attributes); } } function promptText(element, range) { var text = element.textContent; if(text.trim().length>0) { range.selectNodeContents(element); var rect = range.getBoundingClientRect(); if(rect.width > 0 && rect.height > 0 && rect.left >= 0 && rect.top >= 0){ var id = element.parentNode.id; var name = element.parentNode.getAttrib...
From [email protected] on June 19, 2014 15:31:48
What steps will reproduce the problem? My Robotium test for an Android application is as follows.
public void testLogin()
{
solo.waitForView(android.webkit.WebView.class);
logWebElementsFound();
}
/**
* Logs the WebElements currently displayed.
/
private void logWebElementsFound(){
for(WebElement webElement : solo.getCurrentWebElements()){
Log.d("Robotium", "id: '" + webElement.getId() + "' text: '" + webElement.getText() + "' name: '" + webElement.getName() +
"' class name: '" + webElement.getClassName() + "' tag name: '" + webElement.getTagName() + "'");
}
} What is the expected output? What do you see instead? I am trying to list all the elements of my WebView in the logs.
I do not see those and see the following error within my Launcher Activity for a few seconds. After a few seconds, the content on my activity is loaded but I still do not see any WebView elements in the logs.
I was able to copy the error from my screen when I was "debugging" the test (as opposed to running it). What version of the product are you using? On what operating system? robotium-solo-5.1.jar
Android KitKat Please provide any additional information below. ERROR: Illegal character in fragment at index 5655: javascript:/* * Used by the web methods. * * @author Renas Reda, [email protected] * */ function allWebElements() { for (var key in document.all){ try{ promptElement(document.all[key]); }catch(ignored){} } finished(); } function allTexts() { var range = document.createRange(); var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,false); while(n=walk.nextNode()){ try{ promptText(n, range); }catch(ignored){} } finished(); } function clickElement(element){ var e = document.createEvent('MouseEvents'); e.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null); element.dispatchEvent(e); } function id(id, click) { var element = document.getElementById(id); if(element != null){ if(click == 'true'){ clickElement(element); } else{ promptElement(element); } } else { for (var key in document.all){ try{ element = document.all[key]; if(element.id == id) { if(click == 'true'){ clickElement(element); return; } else{ promptElement(element); } } } catch(ignored){} } } finished(); } function xpath(xpath, click) { var elements = document.evaluate(xpath, document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); if (elements){ var element = elements.iterateNext(); while(element) { if(click == 'true'){ clickElement(element); return; } else{ promptElement(element); element = result.iterateNext(); } } finished(); } } function cssSelector(cssSelector, click) { var elements = document.querySelectorAll(cssSelector); for (var key in elements) { if(elements != null){ try{ if(click == 'true'){ clickElement(elements[key]); return; } else{ promptElement(elements[key]); } }catch(ignored){} } } finished(); } function name(name, click) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,null,false); while(n=walk.nextNode()){ try{ var attributeName = n.getAttribute('name'); if(attributeName != null && attributeName.trim().length>0 && attributeName == name){ if(click == 'true'){ clickElement(n); return; } else{ promptElement(n); } } }catch(ignored){} } finished(); } function className(nameOfClass, click) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,null,false); while(n=walk.nextNode()){ try{ var className = n.className; if(className != null && className.trim().length>0 && className == nameOfClass) { if(click == 'true'){ clickElement(n); return; } else{ promptElement(n); } } }catch(ignored){} } finished(); } function textContent(text, click) { var range = document.createRange(); var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,false); while(n=walk.nextNode()){ try{ var textContent = n.textContent; if(textContent.trim() == text.trim()){ if(click == 'true'){ clickElement(n); return; } else{ promptText(n, range); } } }catch(ignored){} } finished(); } function tagName(tagName, click) { var elements = document.getElementsByTagName(tagName); for (var key in elements) { if(elements != null){ try{ if(click == 'true'){ clickElement(elements[key]); return; } else{ promptElement(elements[key]); } }catch(ignored){} } } finished(); } function enterTextById(id, text) { var element = document.getElementById(id); if(element != null) element.value = text; finished(); } function enterTextByXpath(xpath, text) { var element = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ).singleNodeValue; if(element != null) element.value = text; finished(); } function enterTextByCssSelector(cssSelector, text) { var element = document.querySelector(cssSelector); if(element != null) element.value = text; finished(); } function enterTextByName(name, text) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,null,false); while(n=walk.nextNode()){ var attributeName = n.getAttribute('name'); if(attributeName != null && attributeName.trim().length>0 && attributeName == name) n.value=text; } finished(); } function enterTextByClassName(name, text) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,null,false); while(n=walk.nextNode()){ var className = n.className; if(className != null && className.trim().length>0 && className == name) n.value=text; } finished(); } function enterTextByTextContent(textContent, text) { var walk=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,false); while(n=walk.nextNode()){ var textValue = n.textContent; if(textValue == textContent) n.parentNode.value = text; } finished(); } function enterTextByTagName(tagName, text) { var elements = document.getElementsByTagName(tagName); if(elements != null){ elements[0].value = text; } finished(); } function promptElement(element) { var id = element.id; var text = element.innerText; if(text.trim().length == 0){ text = element.value; } var name = element.getAttribute('name'); var className = element.className; var tagName = element.tagName; var attributes = ""; var htmlAttributes = element.attributes; for (var i = 0, htmlAttribute; htmlAttribute = htmlAttributes[i]; i++){ attributes += htmlAttribute.name + "::" + htmlAttribute.value; if (i + 1 < htmlAttributes.length) { attributes += "#$"; } } var rect = element.getBoundingClientRect(); if(rect.width > 0 && rect.height > 0 && rect.left >= 0 && rect.top >= 0){ prompt(id + ';,' + text + ';,' + name + ";," + className + ";," + tagName + ";," + rect.left + ';,' + rect.top + ';,' + rect.width + ';,' + rect.height + ';,' + attributes); } } function promptText(element, range) { var text = element.textContent; if(text.trim().length>0) { range.selectNodeContents(element); var rect = range.getBoundingClientRect(); if(rect.width > 0 && rect.height > 0 && rect.left >= 0 && rect.top >= 0){ var id = element.parentNode.id; var name = element.parentNode.getAttrib...
Original issue: http://code.google.com/p/robotium/issues/detail?id=616
The text was updated successfully, but these errors were encountered: