
from selenium import webdriver
driver = webdriver.Chrome("c:/driver/chromedriver.exe")
driver.get("http://example.selenium.jp/reserveApp/")
elem_Next_btn = driver.find_element_by_xpath("//*[@id='goto_next']")
elem_Next_btn.click()
<a class="segmented-button-label"
ng-class="{ 'center-text': !controller.shouldShowDropdownArrow,
'segmented-button-label-disabled': controller.account.isDisabled }"
ng-click="controller.openFirstPlatform()" data-e2e="openPlatformButton">新取引システム</a>//*[@id="my-ig"]/div[2]/div/ig-state-change-
spinner/div/div/div/div/div/div/div[1]/div/account-
table/div/div/div[2]/div[3]/div/leveraged-account-table-row/div/div[1]/platform-
segmented-button/div/aelem_segmented_btn = driver.find_element_by_xpath("//*[@id='my-ig']/div[2]/div/ig-
state-change-spinner/div/div/div/div/div/div/div[1]/div/account-
table/div/div/div[2]/div[3]/div/leveraged-account-table-row/div/div[1]/platform-
segmented-button/div/a")
elem_segmented_btn.click()
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException:
Message: no such element:
Unable to locate element:--
このメールは Google グループのグループ「日本Seleniumユーザーコミュニティ」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには seleniumjp+...@googlegroups.com にメールを送信してください。
このグループに投稿するには selen...@googlegroups.com にメールを送信してください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
タカミさま、返信ありがとうございます。いただいた情報、検証しまして報告いたします。

elem_segmented_btn = driver.find_element_by_css_selector(".account:nth-child(3) .segmented-button-label")
elem_segmented_btn.click()elem_segmented_btn = driver.find_element_by_xpath("(//a[contains(text(),'新取引システム')])[3]")
elem_segmented_btn.click()raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element--

タカミさま、返信ありがとうございます!
コード試してみてご報告いたします。
tkxn
--
このメールは Google グループのグループ「日本Seleniumユーザーコミュニティ」の登録者に送られています。
タカミさま、返信ありがとうございます!
コード試してみてご報告いたします。
tkxn
--
このメールは Google グループのグループ「日本Seleniumユーザーコミュニティ」の登録者に送られています。
href属性が 無いようでしたね
大変失礼致しました
検証ができませんが
☆ print (driver.find_element_by_tag_name('body').get_attribute('innerHTML')) で要素が 存在すれば
(存在しない場合 別の原因が あると思われます)以下が 省略形の一つの例です
elem_segmented_btn = driver.find_element_by_xpath("//a[contains(text(), '新取引システム')]")elem_segmented_btn.click()
タカミさま、返信ありがとうございます!
コード試してみてご報告いたします。
tkxn
--
このメールは Google グループのグループ「日本Seleniumユーザーコミュニティ」の登録者に送られています。
新取引システムが 複数あり、「FX口座・新取引システム」は 上から 3番目みたいなので
elem_segmented_btn = driver.find_element_by_xpath("//a[contains(text(), '新取引システム')][3]")elem_segmented_btn.click()でしょう************************************************************************************************************************************************************************************************はじめからの疑問なのですが該当要素が frameか ifarme内に 存在する可能性は ないでしょうか?(この場合も 同様のエラーが 発生します)以下のコードで 【発見しました!】と 表示されるとよいのですが…参考コードfrom selenium import webdriver from time import sleep chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--disable-infobars") driver = webdriver.Chrome(chrome_options=chrome_options) driver.get('http://www.htmq.com/html5/iframe.shtml') #この行を コメントアウトする # ******************************************* # ここに ログイン操作を 記述する # ******************************************* def frame_iframe(ls): for l in ls: iframe_HTML = (l.get_attribute('outerHTML')) print (iframe_HTML +'\n' ) try: driver.switch_to_frame(l) sleep (0.1) Str = driver.page_source if Str.find('新取引システム') != -1: print ('*' * 30 ) print ('発見しました!') print ('*' * 30 ) try: driver.find_element_by_xpath("//a[contains(text(), '新取引システム')][3]").click() break except: pass except: pass driver.switch_to_default_content() sleep (0.1) ls = driver.find_elements_by_tag_name('frame') if len(ls) > 0: print ('*' * 30 ) print('','frameタグの数:' + str(len(ls)) + '個です') print ('*' * 30 +'\n') frame_iframe(ls) ls = driver.find_elements_by_tag_name('iframe') if len(ls) > 0: print ('*' * 30 ) print('','iframeタグの数:' + str(len(ls)) + '個です') print ('*' * 30 +'\n') frame_iframe(ls) sleep (3) driver.quit()
from selenium import webdriver
driver = webdriver.Chrome("c:/driver/chromedriver.exe")
driver.get("http://example.selenium.jp/reserveApp/")
print(driver.find_element_by_tag_name('body').get_attribute('innerHTML'))
>はじめからの疑問なのですが該当要素が frameか ifarme内に 存在する可能性は ないでしょうか?(この場合も 同様のエラーが 発生します)
ifarmeが存在しているようです。教えていただいたHTML出力結果にifarmeのタグがあったようです。
先ほど、pythonのスクリプト全体など送ったのですが例示いただいたスクリプトは自分で検証してみます!
--
このメールは Google グループのグループ「日本Seleniumユーザーコミュニティ」の登録者に送られています。
sleep(15)
elem_segmented_btn = driver.find_element_by_xpath("(//a[contains(text(),'新取引システム')])[3]")
elem_segmented_btn.click()
sleep(60)
from selenium import webdriver
driver = webdriver.Chrome("c:/driver/chromedriver.exe")
driver.implicitly_wait(60)
こんにちは、Python+selenium+chromeで、サイトにログイン後データ収集したいと考えております。現状、ログインはできたのですが、以下がうまくいきません、どなたかヒントだけでもご教示いただけますと助かります。問題の部分はやや特殊で、6個の取引メニューごとにプルダウンが配置されており、プルダウンのラベルをそのままクリックで「新取引システム」、リストを表示させてクリックで「旧取引システム」画面が開きます。今回は、FX口座・新取引システムの画面を開こうとしています。Chrome上でXpathによりXML要素を選択するには、