前提・実現したいこと
MicrosoftTeamsをsleniumで動かしたいのですが、webアプリ版のTeamsがうまく動かなくて困っています。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "E:/Auto_point_call/selenium_try.py", line 40, in <module> elem = driver.find_element_by_xpath('//*[@id="favorite-teams-panel"]/div/div[1]/div[14]/div[2]/div/ng-include/div') File "C:\Users\luluc\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath return self.find_element(by=By.XPATH, value=xpath) File "C:\Users\luluc\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element return self.execute(Command.FIND_ELEMENT, { File "C:\Users\luluc\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "C:\Users\luluc\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="favorite-teams-panel"]/div/div[1]/div[14]/div[2]/div/ng-include/div"} (Session info: chrome=85.0.4183.83)
該当のソースコード
python
1from selenium import webdriver 2from time import sleep 3driver_path = '.\chromedriver.exe' 4 5driver = webdriver.Chrome(executable_path=driver_path) 6 7 8url = 'https://login.microsoftonline.com/common/oauth2/authorize?response_type=id_token&client_id=5e3ce6c0-2b1f-4285-8d4b-75ee78787346&redirect_uri=https%3A%2F%2Fteams.microsoft.com%2Fgo&state=4a7fd080-ac78-4361-8e4d-284f80ccf499&client-request-id=48a89a77-e025-4b45-9b32-21d1b4d41514&x-client-SKU=Js&x-client-Ver=1.0.9&nonce=a6988c59-e2cd-4fcb-a3e3-0b25242797af&domain_hint=&sso_reload=true' 9driver.get(url) 10# ログイン 11# id入力 12elem = driver.find_element_by_id('i0116') 13elem.clear() 14elem.send_keys('メールアドレス') 15 16elem = driver.find_element_by_id('idSIButton9') 17elem.click() 18 19elem = driver.find_element_by_id('i0118') 20elem.send_keys('パスワード') 21# ロードされるのを待つ 22sleep(4) 23elem = driver.find_element_by_id('idSIButton9') 24elem.click() 25 26# ロードされるのを待つ 27sleep(2) 28elem = driver.find_element_by_id('idSIButton9') 29elem.click() 30 31# 代わりにwebアプリを使用する 32elem = driver.find_element_by_xpath('//*[@id="download-desktop-page"]/div/a') 33elem.click() 34 35# チームのクリック 36sleep(5) 37elem = driver.find_element_by_xpath('//*[@id="favorite-teams-panel"]/div/div[1]/div[14]/div[2]/div/ng-include/div') 38elem.click() 39
試したこと
ログイン画面からteamsのホーム画面までは行けたのですがそのあとチームをクリックしようとするとエラーが出ます。
補足情報(FW/ツールのバージョンなど)
teamsのホーム画面のHTMLを掲載してください
一部ですとxPathが正しいかわかりません。
あとseleniumのfind_element_by_xpathは挙動がおかしいときがあります。
len(elem) != 0 でエレメントが取得できているか確認ができますので
デバッグしてみて下さい。
あなたの回答
tips
プレビュー