質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

623閲覧

Seleniumで外為オンライン(デモ)にログインしたい

M.TM

総合スコア1

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2023/07/22 17:19

実現したいこと

selenium, undected_chromedriverを用いて外為オンラインのデモ口座にログインしたい

前提

Selenium, undetected_chromedriverを用いて外為オンライン(デモ)を動かすプログラムを書きたいです。
その前段階として、ログインを行う必要があるのですが、要素が取得できないエラーが発生しました。

発生している問題・エラーメッセージ

no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="demo_res_login"]/form/dl/dd[1]/input"}
(Session info: chrome=115.0.5790.102); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception

該当のソースコード

Python3.11.4
Selenium4.10.0
undetected-chromedriver 3.5.0

import undetected_chromedriver as uc from selenium.webdriver.common.by import By import time # Google Chromeでページを立ち上げ url = 'https://www.gaitameonline.com/loginInline.jsp' browser = uc.Chrome() # open chrome time.sleep(1) browser.get(url) # URLにアクセス time.sleep(5) # ログインを行う username_input = browser.find_element(By.XPATH, '//*[@id="demo_res_login"]/form/dl/dd[1]/input') username_input.click() username_input.send_keys('自分のID') password_input = browser.find_element(By.XPATH, '//*[@id="demo_res_login"]/form/dl/dd[2]/input') password_input.click() password_input.send_keys('自分のパスワード') time.sleep(1)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2023/07/23 01:23

エラーが出る前の行で、 ` print(browser.page_source) ` 等のように ページのソースを表示して確認するとどのような HTML が取得されますか? その HTML に指定している要素はありますか?
M.TM

2023/07/23 02:06

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"><head> <!--[if IE]> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <![endif]--> <meta charset="Shift_JIS"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <link href="/common/css/bootstrap.min.css" rel="stylesheet" type="text/css"> <script async="" type="application/javascript" src="//score.im-apps.net/v1/fraud?escvid=28531&amp;imid=qmY36jx5SpGNQF01VQiUfQ&amp;callback=im1690077084423"></script><script async="" defer="" src="https://dmp.im-apps.net/sdk/im-uid.js"></script><script async="" src="https://dmp.im-apps.net/scripts/set.js?cid=1011898&amp;sid=10090125&amp;token=d359fae0b9156ed39fafcb6debe94884"></script><script async="" src="//dmp.im-apps.net/sdk/log.js"></script><script type="text/javascript" referrerpolicy="no-referrer-when-downgrade" async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-5MPS4GP&amp;l=itm_dl1_1011898"></script><script type="text/javascript" src="https://s.yimg.jp/images/listing/tool/cv/ytag.js"></script><script async="" src="https://am.yahoo.co.jp/rt/?p=WA2XD1PR4E&amp;label=&amp;ref=https%3A%2F%2Fwww.gaitameonline.com%2FloginInline.jsp&amp;rref=&amp;pt=&amp;item=&amp;cat=&amp;price=&amp;quantity=&amp;r=1690077084.8852227&amp;pvid=ke31got30qalkes9c4q&amp;su=7de9b880-9538-4252-ac2b-78c4f00662ac&amp;_impl=ytag&amp;brands=%22Not%2FA)Brand%22%3B%20v%3D%2299.0.0.0%22%2C%20%22Google%20Chrome%22%3B%20v%3D%22115.0.5790.102%22%2C%20%22Chromium%22%3B%20v%3D%22115.0.5790.102%22&amp;platform=%22Windows%22&amp;platform_version=%2215.0.0%22"></script><script type="text/javascript" async="" src="https://s.yimg.jp/images/listing/tool/cv/ytag.js"></script><script type="text/javascript" referrerpolicy="no-referrer-when-downgrade" async="" src="https://sync.im-apps.net/imid/segment?callback=_itm_.c1011898.ia_cb&amp;token=VXoW9wEaCAYxiIkb8Mzm7Q&amp;need_created=True"></script><script type="text/javascript" src="//yjtag.yahoo.co.jp/tag?site=zGPYxA4&amp;referrer=https%3A%2F%2Fwww.gaitameonline.com%2FloginInline.jsp&amp;H=-1pm0mep"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-WJPE3EJ20X&amp;l=dataLayer&amp;cx=c"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-6CRE6ENV7C&amp;l=dataLayer&amp;cx=c"></script><script async="" src="https://cdn.hera.d2c.ne.jp/1.0/index.js"></script><script async="" src="https://dmp.im-apps.net/js/1011898/0001/itm.js"></script><script async="" src="https://d.line-scdn.net/n/line_tag/public/release/v1/lt.js"></script><script async="" src="https://d.line-scdn.net/n/line_tag/public/release/v1/lt.js"></script><script async="" src="https://d.line-scdn.net/n/line_tag/public/release/v1/lt.js"></script><script src="https://connect.facebook.net/signals/config/331532274990904?v=2.9.116&amp;r=stable" async=""></script><script src="https://connect.facebook.net/signals/config/1141728846173916?v=2.9.116&amp;r=stable" async=""></script><script src="https://connect.facebook.net/signals/config/337611626985496?v=2.9.116&amp;r=stable" async=""></script><script src="https://connect.facebook.net/signals/config/888524994512496?v=2.9.116&amp;r=stable" async=""></script><script async="" src="https://connect.facebook.net/en_US/fbevents.js"></script><script type="text/javascript" async="" src="https://s.yimg.jp/images/listing/tool/cv/ytag.js"></script><script type="text/javascript" async="" src="https://s.yimg.jp/images/listing/tool/cv/ytag.js"></script><script async="" src="//s.yjtag.jp/tag.js#site=zGPYxA4"></script><script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-M3F4GV"></script><script type="text/javascript" async="" src="https://stats.g.doubleclick.net/dc.js"></script><script src="/common/js/jquery-2.2.4.min.js"></script> <script src="/common/js/bootstrap.min.js"></script> <script src="/common/js/common.js"></script> <link href="/common/css/common.css" rel="stylesheet" type="text/css"> <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <!-- <script>(function() { var _fbq = window._fbq || (window._fbq = []); if (!_fbq.loaded) { var fbds = document.createElement('script'); fbds.async = true; fbds.src = '//connect.facebook.net/en_US/fbds.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(fbds, s); _fbq.loaded = true; } _fbq.push(['addPixelId', '888524994512496']); })(); window._fbq = window._fbq || []; window._fbq.push(['track', 'PixelInitialized', {}]); </script> <noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/tr?id=888524994512496&amp;ev=PixelInitialized" /></noscript> --> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-19498730-1']); _gaq.push(['_setDomainName', 'gaitameonline.com']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <!-- Segment Pixel - リタゲタグ(ホームページTOP/ホームページ 下位層)PC - DO NOT MODIFY --> <script src="https://js.api.nidan.d2c.ne.jp/id/nidan/pre?callback=d2c.nidan.receivers%5B%22tlLbKbzanS%22%5D&amp;nocache=1690077084115&amp;origin=https%3A%2F%2Fwww.gaitameonline.com"></script><script src="https://nidan.addlv.smt.docomo.ne.jp/id/daisy/sync?callback=d2c.nidan.receivers%5B%22ZLiZZJDQsK%22%5D"></script><script type="text/javascript" src="https://b99.yahoo.co.jp/pagead/conversion_async.js"></script><script src="https://js.api.nidan.d2c.ne.jp/id/nidan/receiver?callback=d2c.nidan.receivers%5B%22yPHfBRVYXW%22%5D&amp;nocache=1690077084262&amp;origin=https%3A%2F%2Fwww.gaitameonline.com"></script><meta http-equiv="origin-trial" content="AymqwRC7u88Y4JPvfIF2F37QKylC04248hLCdJAsh8xgOfe/dVJPV3XS3wLFca1ZMVOtnBfVjaCMTVudWM//5g4AAAB7eyJvcmlnaW4iOiJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbTo0NDMiLCJmZWF0dXJlIjoiUHJpdmFjeVNhbmRib3hBZHNBUElzIiwiZXhwaXJ5IjoxNjk1MTY3OTk5LCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="AymqwRC7u88Y4JPvfIF2F37QKylC04248hLCdJAsh8xgOfe/dVJPV3XS3wLFca1ZMVOtnBfVjaCMTVudWM//5g4AAAB7eyJvcmlnaW4iOiJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbTo0NDMiLCJmZWF0dXJlIjoiUHJpdmFjeVNhbmRib3hBZHNBUElzIiwiZXhwaXJ5IjoxNjk1MTY3OTk5LCJpc1RoaXJkUGFydHkiOnRydWV9"></head><body><img height="1" src="https://ssl.socdm.com/sa/img?said=sg15851-s&amp;t=2" style="position:absolute;border:none;padding:0;margin:0;" width="1"> <!-- End of Segment Pixel --> <script src="./libs.js" type="text/javascript"></script> <link href="./css/atten.css" rel="stylesheet" type="text/css"> <link href="./loginInline/css/loginInline.css" rel="stylesheet" type="text/css"> <link href="./css/onlineDemo.css" rel="stylesheet" type="text/css"> <link href="/css/login.css" rel="stylesheet" type="text/css"> <script src="//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject_src.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script src="./_js/pgwbrowser.min.js"></script> <title>FXデモ|FXデモトレードを体験する(無料)</title> <meta name="Keywords" content="デモ,デモ体験,ログイン,外為,外為オンライン,外国為替,外国為替取引,外国為替証拠金取引,FX,オンライントレード,デイトレ"> <meta name="Description" content="外国為替証拠金取引(FX)の外為オンラインの取引デモ 体験にログインできます。"> <script src="https://demo.gaitameonline.com/fx/custom/X4N30R09J16FT/js/iframeResizer.min.js"></script> <script> function doFrameResize(target){ iFrameResize({ initCallback: function(iframe) { document.body.scrollTop = document.documentElement.scrollTop = 0; } }, target); } </script> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-M3F4GV" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M3F4GV');</script> <!-- End Google Tag Manager --> <header class="header"> <div class="header_box"> <div class="header_container"> <div class="navbar-header"> <div class="onl_logo"> <a href="/"> <picture> <source srcset="/common/img/anatanotameno-gaitameonline.webp" type="image/webp"> <img src="/common/img/anatanotameno-gaitameonline.svg" width="188" height="41" alt="外為オンライン"> </picture></a> </div> <div class="sp_menu"> <button type="button" class="navbar-toggle menu-humberger" data-toggle="collapse" data-target=".navbar-menu"> <span></span> <span></span> <span></span> </button> <span class="menu_icon_txt">メニュー</span> </div> </div> <div class="navbar-menu collapse navbar-collapse"> <!--<div class="headic clearfix">-->
M.TM

2023/07/23 02:07

このように取得することができました!
meg_

2023/07/23 03:10

> selenium, undected_chromedriverを用いて外為オンラインのデモ口座にログインしたい 上記はサイトから許可されている行為でしょうか?
M.TM

2023/07/26 15:27

import undetected_chromedriver as uc from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time # Google Chromeでページを立ち上げ url = 'https://www.gaitameonline.com/onlineDemo.jsp#for_pc' browser = uc.Chrome() # open chrome time.sleep(10) browser.get(url) # URLにアクセス time.sleep(5) # ページの切り替え changepage = browser.find_element(By.XPATH, '//*[@id="all-top"]/main/article/div/section[1]/div[2]/div/a') changepage.click() time.sleep(2) # iframeに切り替える iframe = browser.find_element(By.ID, 'iFrameResizer0') # iframeのIDを指定 browser.switch_to.frame(iframe) #ユーザーID記入 username_input = browser.find_element(By.XPATH, '//*[@id="demo_res_login"]/form/dl/dd[1]/input') username_input.click() time.sleep(1) username_input.send_keys('******') #パスワード記入 password_input = browser.find_element(By.XPATH,'//*[@id="demo_res_login"]/form/dl/dd[2]/input') password_input.click() time.sleep(1) password_input.send_keys('*******') #ログインボタンクリック login_buttom = browser.find_element(By.XPATH, '//*[@id="demo_res_login"]/form/dl/dd[5]/input') login_buttom.click() このようにすることでログインができました
meg_

2023/07/27 08:48

iframeが問題だったのでしょうかね。解決されてようで良かったです。 ご自身で回答を投稿することで「自己解決」として問題をクローズすることができるかと思います。
M.TM

2023/07/30 03:35

勉強になりました!ありがとうございました!
guest

回答1

0

自己解決

import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

Google Chromeでページを立ち上げ

url = 'https://www.gaitameonline.com/onlineDemo.jsp#for_pc'
browser = uc.Chrome() # open chrome
time.sleep(10)

browser.get(url) # URLにアクセス
time.sleep(5)

ページの切り替え

changepage = browser.find_element(By.XPATH, '//*[@id="all-top"]/main/article/div/section[1]/div[2]/div/a')
changepage.click()
time.sleep(2)

iframeに切り替える

iframe = browser.find_element(By.ID, 'iFrameResizer0') # iframeのIDを指定
browser.switch_to.frame(iframe)

#ユーザーID記入
username_input = browser.find_element(By.XPATH, '//[@id="demo_res_login"]/form/dl/dd[1]/input')
username_input.click()
time.sleep(1)
username_input.send_keys('
*****')

#パスワード記入
password_input = browser.find_element(By.XPATH,'//[@id="demo_res_login"]/form/dl/dd[2]/input')
password_input.click()
time.sleep(1)
password_input.send_keys('
******')

#ログインボタンクリック
login_buttom = browser.find_element(By.XPATH, '//*[@id="demo_res_login"]/form/dl/dd[5]/input')
login_buttom.click()

投稿2023/07/30 03:35

M.TM

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問