Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
GoogleCodeExporter opened this issue Aug 18, 2015 · 3 comments

Comments

@GoogleCodeExporter
Copy link

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.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 [email protected] on 19 Jun 2014 at 10:31

@GoogleCodeExporter
Copy link
Author

Would it be possible for you to share an app that exhibits this issue?

Original comment by [email protected] on 23 Jun 2014 at 7:11

@GoogleCodeExporter
Copy link
Author

Can you please try to reproduce on the ShareFile app from the Play Store?

Original comment by [email protected] on 25 Jun 2014 at 12:23

@GoogleCodeExporter
Copy link
Author

Would it be possible for you to send us an APK that exhibits this issue? 
Thanks. 

Original comment by [email protected] on 13 Nov 2014 at 10:17

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant