Je viens de commencer à travailler sur l'automatisation des tests python, et j'essaie d'affirmer qu'un certain cookie avec une certaine valeur est en cours de définition lorsque l'on clique sur un bouton donné. Je l'automatisation des tests en utilisant écharde, et jusqu'à présent je ceci:Valeur d'affirmation de la clé dans cookie dict
cookie_bar = browser.find_link_by_text('Yes')
manage_cookies = browser.find_link_by_text('Manage cookies')
if not manage_cookies:
if cookie_bar:
browser.find_link_by_text('Yes').first.click()
else:
browser.find_link_by_text('Hide this message').first.click()
if manage_cookies:
browser.find_link_by_text('Manage cookies').first.click()
browser.driver.switch_to_window(browser.windows[-1].name)
browser.find_by_text('Accept Cookies').first.click()
browser.driver.switch_to_window(browser.windows[-1].name)
cookies_list = browser.cookies.all()
La méthode "browser.cookies.all()" retourne un dict de { 'cookie1': 'valeur1', 'cookie2': 'value2', etc.}; Je suis en train d'affirmer que « cookie1 » revient avec la valeur « valeur1 », mais à ce jour rien que j'ai essayé a travaillé, comme ils viennent tous avec une sorte d'erreur « unhashable »:
assert ['cookie1' == 'value1'] in cookies_list # TypeError: unhashable type: 'list'
assert [{'cookie1': 'value1'}] in cookies_list # TypeError: unhashable type: 'list'
assert {'cookie1': 'value1'} in cookies_list # TypeError: unhashable type: 'dict'
assert {'cookie1', 'value1'} in cookies_list #TypeError: unhashable type: 'set'
maintenant , Je n'ai jamais travaillé avec python auparavant, donc c'est peut-être quelque chose de vraiment simple qui m'échappe, mais je ne peux pas le comprendre. Je peux les affirmer individuellement, mais ce que je vraiment besoin est, dans les termes les plus simples:
assert 'cookie1' with value 'value1' in cookies_list
Est-il possible de le faire?
Génial, merci! Est-il possible de le faire comme une liste de clés et de valeurs? Comme dans "assert cookies_list.get ('cookie1', 'cookie2') == 'valeur1', 'valeur2'? – RagnarOdin
@RagnarOdin J'ai édité ma réponse, j'espère que cela vous aidera –
Double merci, le réponse améliorée a travaillé comme un charme! – RagnarOdin