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 #695

Open
renas opened this issue Aug 20, 2015 · 3 comments
Open

Comments

@renas
Copy link
Contributor

renas commented Aug 20, 2015

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

@renas
Copy link
Contributor Author

renas commented Aug 20, 2015

From [email protected] on June 23, 2014 00:11:32

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

Owner: [email protected]

@renas
Copy link
Contributor Author

renas commented Aug 20, 2015

From [email protected] on June 24, 2014 17:23:12

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

@renas
Copy link
Contributor Author

renas commented Aug 20, 2015

From [email protected] on November 13, 2014 14:17:59

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

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