2016-10-06 4 views
0

私は少しの調査を行いましたが、PythonでSelenium WebDriverに固有の回答は見つかりませんでした。 ページに正常にログインできますが、ログインが成功したことを確認する方法が見つかりません。ページタイトルは変更されないため、私のためには機能しません。 Python Seleniumのドキュメントには、説明や例がありません。 私はこのコードはラインを入れて、ユーザ名「Tutoは」私は代わりに、PythonのバージョンのJavascriptのAPIで働いていますPython/Selenium Webdriverを使用してログインを成功させる/確認する方法

LoginButtonLocator = "//a[contains(text(), 'Login')]" 
facebookConnectButtonLocator = "//a[contains(text(), 'Connect with Facebook')]" 

facebookLoginLocatorID = "email" 
facebookPasswordLocatorID = "pass" 
facebookLoginButtonLocatorID = "loginbutton" 

LoginButtonElement = WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_xpath(LoginButtonLocator)) 
LoginButtonElement.click() 
facebookConnectButtonElement = WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_xpath(facebookConnectButtonLocator)) 
facebookConnectButtonElement.click() 
facebookLoginElement = WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_id(facebookLoginLocatorID)) 
facebookLoginElement.send_keys(facebookID) 
facebookPasswordElement = WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_id(facebookPasswordLocatorID)) 
facebookPasswordElement.send_keys(facebookPW) 
facebookLoginButtonElement = WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_id(facebookLoginButtonLocatorID)) 
facebookLoginButtonElement.click() 
+0

これは、Tutoの名前が表示されているか、または署名されているhtmlです。 - Tuto

答えて

0

ページ上に表示されていることを主張することで後にやりたいすべて、その構文異なっているが、ここで私は(テストフレームワークとしてのモカを使用して)それについて取得する方法を示します。JavaScriptのバージョンで

facebookLoginButtonElement.click().then(function(_) { 
    driver.findElement(By.xpath('//a[text() = "Tuto"]')).then(function(userLink) { 
     assert.ok(userLink); 
    }); 
}); 

<a ...>Tuto</a>は、コールバックが呼び出される前にエラーがあるだろう見つけることができない場合したがって、アサーションは冗長になります(リンクが見つかった場合にのみ得られます)が、私はそれを自己文書化と見なしてアサーションを追加します。

+0

私がやったことは最高の選択肢ではありませんが、これまで使っています。よりよいアイデアで):driver.page_sourceに "Tuto"をアサートする –

0

だけでXPathを使用して検索してみてください。

wait = WebDriverWait(browser, 10) 

find_username = wait.until(EC.presence_of_element_located((By.XPATH,'//span[contains(text(), "Alex")]'))) 

assert find_username 

希望、それはあなたを助けるでしょう。

関連する問題