Karl Swedberg napisał doskonały wpis w blogu na ten temat, który można znaleźć na http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet
dostosowaliśmy ten iw zasadzie w pliku jar Selenium Server my zmodyfikowanej RemoteRunner.html włączyć JavaScript jQuery (otrzymany od http://code.jquery.com/jquery-latest.min.js):
<script language="JavaScript" type="text/javascript" src="jquery.min.js"></script>
<script language="JavaScript" type="text/javascript">
function openDomViewer() {
var autFrame = document.getElementById('selenium_myiframe');
var autFrameDocument = new SeleniumFrame(autFrame).getDocument();
this.rootDocument = autFrameDocument;
var domViewer = window.open(getDocumentBase(document) + 'domviewer/domviewer.html');
return false;
}
</script>
Następnie włączyć to do stosowania w selen dodamy strategię lokalizacji:
mySelenium.addLocationStrategy("jquery",
"var loc = locator; " +
"var attr = null; " +
"var isattr = false; " +
"var inx = locator.lastIndexOf('@'); " +
"if (inx != -1){ " +
" loc = locator.substring(0, inx); " +
" attr = locator.substring(inx + 1); " +
" isattr = true; " +
"} " +
"var found = jQuery(inDocument).find(loc); " +
"if (found.length >= 1) { " +
" if (isattr) { " +
" return found[0].getAttribute(attr); " +
" } else { " +
" return found[0]; " +
" } " +
"} else { " +
" return null; " +
"}"
);
Uwaga powyższe dodanie strategii lokalizatora jest w Javie, ale jest to tylko ciąg znaków, więc powinien być łatwo replikowany w języku C#. JQuery robi rzeczy dużo szybciej, szczególnie w Internet Explorerze!
Aby zmodyfikować słoik, można użyć narzędzia wiersza poleceń java do zaktualizowania pobranego pliku jar selenu. Utwórz folder na tym samym poziomie co jar o nazwie "core" i umieść w nim zmodyfikowane pliki RemoteRunner.html i jquery.min.js. Następnie należy uruchomić coś takiego:
jar -uf selenium-server-standalone-2.0b3-APT.jar core\RemoteRunner.html
jar -uf selenium-server-standalone-2.0b3-APT.jar core\jquery.min.js
Jeśli słoik nie jest w ścieżce można użyć pełnej ścieżki, na przykład w systemie Windows można wykonać go z czymś takim:
"C:\Program Files\Java\jdk1.6.0_22\bin\jar.exe" <arguments>
znalazłem to bardzo interesujące! ale główne pytanie brzmi: jak możemy użyć tego rozszerzenia jquery, np.wpisz w polu tekstowym zaznaczonym przez jquery? –
@Andreas wystarczy użyć jquery =, aby uruchomić wyrażenie lokalizatora, a następnie użyć jquery! Przykładowe wyrażenie lokalizatora (celowo nie najprostszy przykład): "jquery = table # myParentTableID> input.input-class" – Zugwalt
dziękuję, udało się! –