J'ai moi-même commencé Python et le codage après avoir rejoint l'entreprise en octobre. Je ne sais pas encore grand chose, mais en guise de mémorandum d'étude, j'aimerais écrire sur la méthode Webdriver que j'ai étudiée à plusieurs reprises lorsque je commençais tout juste Python et le codage. C'est écrit en regardant les premières notes, donc je serais très heureux si vous pouviez signaler les erreurs!
Un outil pour faire fonctionner un navigateur Web par programmation. Vous pouvez effectuer par programme une série d'étapes telles que l'ouverture de chrome, la saisie de mots-clés dans la fenêtre de recherche et le clic sur le bouton de recherche. Cela permet de gratter et de tester.
Ce qui suit est requis pour utiliser.
from selenium import webdriver
Fait référence à l'élément DOM. DOM est un mécanisme pour accéder à chaque élément de xml et html (une balise, une balise p, etc.). En d'autres termes, l'élément DOM fait référence à chaque élément affiché sur le Web.
L'appel de méthode vérifie si l'élément peut être référencé. Si une erreur se produit, une StaleElementReferenceException sera levée.
find_element
method | |
---|---|
find_element_by_id(id) | Rechercher des éléments dans les éléments enfants par ID |
find_element_by_class_name(class) | Rechercher des éléments dans les éléments enfants par classe |
find_element_by_css_selector(css_selector) | Rechercher des éléments dans des éléments enfants avec des sélecteurs CSS |
find_element_by_tag_name(name) | Rechercher des éléments dans les éléments enfants par nom de balise (h1, tr, etc.) |
find_element_by_name(name) | Rechercher des éléments dans les éléments enfants avec la propriété name |
find_element_by_link_text(link_text) | Recherche par chaîne de texte du lien |
find_element_by_partial_link_text(link_text) | Recherche par partie de la chaîne de texte du lien |
find_element_by_xpath(xpath) | Rechercher des éléments par xpath |
find_elements
La méthode de recherche est fondamentalement la même que find_element. ** * Notez que contrairement à find_element, il sera renvoyé sous forme de liste! !! ** ** Si vous ne notez pas qu'il sera retourné dans la liste, vous ne pouvez pas utiliser la méthode, pourquoi! !! (Je suis devenu)
method | |
---|---|
find_elements_by_id(id) | Rechercher des éléments dans les éléments enfants par ID |
find_elements_by_class_name(class) | Rechercher des éléments dans les éléments enfants par classe |
find_elements_by_css_selector(css_selector) | Rechercher des éléments dans des éléments enfants avec des sélecteurs CSS |
find_elements_by_tag_name(name) | Rechercher des éléments dans les éléments enfants par nom de balise (h1, tr, etc.) |
find_elements_by_name(name) | Rechercher des éléments dans les éléments enfants avec la propriété name |
find_elements_by_link_text(link_text) | Recherche par chaîne de texte du lien |
find_elements_by_partial_link_text(link_text) | Recherche par partie de la chaîne de texte du lien |
find_elements_by_xpath(xpath) | Rechercher des éléments par xpath |
Le find_element et find_elements que vous devriez utiliser car il y a une pluralité de types, on parle aussi de ça, mais c'est omis cette fois. Personnellement, je ne pense pas que vous devriez utiliser xpath ou link text ...
click() Cliquez sur l'élément. text Obtient le texte de l'élément. clear() Pour les éléments qui vous permettent de saisir du texte, le texte est effacé. send_keys(value) Remplissez les éléments. Ce qui suit est requis pour utiliser.
from selenium.webdriver.common.keys import Keys
get_attribute(name) Obtient les propriétés de l'attribut ou de l'élément spécifié. Si l'attribut spécifié n'existe pas, Aucun sera renvoyé. is_displayed() L'élément est-il affiché? is_selected() L'élément est-il sélectionné? Vous pouvez obtenir si le bouton radio ou la case à cocher est sélectionné.
Ceci est un exemple de code en prime. J'en ai présenté certains, donc je ne les ai pas utilisés, mais ce n'est pas difficile. Veuillez me pardonner de l'omettre un peu.
sample.html
<body>
<form>
<h2>Nom</h2>
<input id="name" type="text" maxlength="50">
<h2>Animal préféré</h2>
<select name="dropdown">
<option value="elephant">l'éléphant</option>
<option value="lion">Lion</option>
<option value="giraffe">Kirin</option>
<label><input type="checkbox" id="chk" checked>Case à cocher</label>
<input type="submit" id="agree_and_goto_next">
</form>
</body>
sample.py
def test_change_params(self):
#Entrez un nom
name = driver.find_element_by_id('name')
name.clear()
name.send_keys('arisa yamamoto')
#Sélectionnez Lion dans le menu déroulant
dropdown = Select(driver.find_element_by_id('dropdown'))
dropdown.select_by_value('1')
#Cochez la case
chk_box = driver.find_element_by_id('chk')
if chk_box.is_selected is False:
chk_box.click()
#Appuyez sur le bouton de consentement
agr_btn = driver.find_element_by_id('agree_and_goto_next')
agr_btn.click()
Cela semble facile maintenant, mais il s'avère qu'il y a trop de choses qu'un débutant complet ne saurait pas. Je continuerai à me consacrer tout en prenant des notes.
Recommended Posts