J'utilise XPath avec sélénium assez heureusement et même en utilisant Geteval avec un JavaScript, mais un collègue a déclaré que ce ne serait pas génial de pouvoir utiliser des sélecteurs JQuery à Selenium. P>
J'ai googlé, mais je ne trouve aucun article qui semble travailler pour moi. Si quelqu'un pourrait fournir un guide complet sur la manière d'utiliser la syntaxe JQuery pour extraire des éléments DOC et leurs valeurs respectives en sélénium. P>
J'utilise C # pour écrire mes tests de sélénium, donc si des exemples pouvaient provenir d'une perspective C #, ce serait génial. P>
merci p>
3 Réponses :
Vous auriez besoin de définir une nouvelle stratégie d'emplacement à l'aide du AddLocaStrategy doit inclure la jQuery dans votre fichier user-extensions.js. p>
Karl Swedberg a écrit une excellente entrée de blog à propos de celui-ci qui peut être trouvé sur http://www.learningjquerery.com/2009/04/Better-Stronger-safer-jquerify-Bookmarklet
Nous avons adapté ceci et fondamentalement dans le fichier JAR Selenium Server, nous avons modifié Remoterunner.html à inclure Le JQuery JavaScript (obtenu de http://code.jquerery.com/jquery-latest.min .js ): p> puis pour activer ceci pour une utilisation dans sélénium, nous ajoutons la stratégie de localisation: p> "C:\Program Files\Java\jdk1.6.0_22\bin\jar.exe" <arguments>
J'ai trouvé cela très interstiquant! Mais la principale question est la suivante: comment pouvons-nous utiliser cette extension JQuery, par exemple. Tapez un Textarea sélectionné par JQuery?
@Andreas Vous venez d'utiliser le jQuery = pour démarrer votre expression de localisateur, puis utiliser jQuery! Exemple d'expression de localisateur (exemple intentionnel pas le plus simple): "jquery = table # myParentTableID> Input.Input-Classe"
Hé, je me suis battu avec cela pendant un moment avant de vous rendre compte que je devais mettre les balises de script mentionnées dans Remoterunner.html plutôt que Testrunner.
@RODREEEEEGEZ - Désolé de mélanger le fichier, vous avez absolument raison. Je vais mettre à jour ma réponse.
@Zugwalt: C'est juste fantastique. Mais ... y a-t-il un moyen d'ajouter un constructeur de localisateur de jQuery personnalisé à Selenium IDE en FF, de sorte que nous n'avons pas à écrire les sélecteurs jQuery manuellement, mais plutôt à les obtenir d'un cas de test enregistré?
@Pierpaolo Malheureusement, je ne sais pas comment faire ça - désolé!
Vous pouvez lire et exécuter_script pour activer JQuery:
Voici un certain code dans Python, une autre langue serait similaire: p> ps: quand j'utilise sélénium pour aller chercher du contenu de certains site Web, ils toujours interdire moi. Maintenant, vous devriez utiliser un proxy pour y passer.
Voici un code: P> PROXY_HOST = "127.0.0.1"
PROXY_PORT = 8087
SOCKS_PORT = 8088
fp = webdriver.FirefoxProfile()
# Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.http", PROXY_HOST)
fp.set_preference("network.proxy.http_port", PROXY_PORT)
fp.set_preference("network.proxy.socks", PROXY_HOST)
fp.set_preference("network.proxy.socks_port", SOCKS_PORT)
fp.set_preference("network.proxy.ftp", PROXY_HOST)
fp.set_preference("network.proxy.ftp_port", PROXY_PORT)
fp.set_preference("network.proxy.ssl", PROXY_HOST)
fp.set_preference("network.proxy.ssl_port", PROXY_PORT)
fp.set_preference("network.proxy.no_proxies_on", "") # set this value as desired
browser= webdriver.Firefox(firefox_profile=fp) # with proxy
browser = webdriver.Firefox() # no proxy
browser.get("http://search.example.com") # Load page
elem = browser.find_element_by_id("query_box") # Find the query input
elem.send_keys(u'my query string') # send query string to the input
elem.submit() # submit the query form