anandmeher / robotium

Automatically exported from code.google.com/p/robotium
0 stars 0 forks source link

Error displayed on Activity's screen when getCurrentWebElements() is invoked #616

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
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, renas.reda@robotium.com * */ 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.getAttribute('name'); var className = 
element.parentNode.className; var tagName = element.parentNode.tagName; 
prompt(id + ';,' + text + ';,' + name + ";," + className + ";," + tagName + 
";," + rect.left + ';,' + rect.top + ';,' + rect.width + ';,' + rect.height); } 
} } function finished(){ prompt('robotium-finished'); } allWebElements();

Original issue reported on code.google.com by yashodha...@gmail.com on 19 Jun 2014 at 10:31

GoogleCodeExporter commented 9 years ago
Would it be possible for you to share an app that exhibits this issue?

Original comment by renasr...@gmail.com on 23 Jun 2014 at 7:11

GoogleCodeExporter commented 9 years ago
Can you please try to reproduce on the ShareFile app from the Play Store?

Original comment by yashodha...@gmail.com on 25 Jun 2014 at 12:23

GoogleCodeExporter commented 9 years ago
Would it be possible for you to send us an APK that exhibits this issue? 
Thanks. 

Original comment by renasr...@gmail.com on 13 Nov 2014 at 10:17