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

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

ただいまの
回答率

88.23%

selenium python での要素が見つからないエラーにつきまして

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 6,585

nisiya22

score 16

お世話になります。
現在python seleniumを使ってログインし検索urlからリンクを作成、短縮urlを抽出しようとしているのですが上手くいかずこちらにてご教授願えないかと質問致しました。

エラー構文は
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='item_link_type']/label[4]"}

またこちらのコードでurl.txtは短縮したいurlを5行ほど書いております。
ファイルではなくurl単品でしたら短縮urlが抽出出来るのですがどうして違うのかわかりません。
どうかご教授願えないでしょうか?
よろしくお願いいたします。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

with open("url.txt","r") as f:
    for line in f:
        url = line

def seleni(url):
    driver = webdriver.Chrome(chrome_path)
    driver.implicitly_wait(10)




    ID = "example"
    PASS = "example"

    driver.get("https://grp02.id.rakuten.co.jp/rms/nid/vc?__event=login&service_id=61&return_url=%2Flink%2Fpc%2Fitem%3Ftype%3Ditem%26me_id%3D1213310%26item_id%3D19757894")



    driver.find_element_by_name('u').send_keys(ID)
##loginInner_u
    driver.find_element_by_name('p').send_keys(PASS)
#loginInner_p
    driver.find_element_by_name('submit').click()
#loginInner > p:nth-child(3) > input
    print('ログイン成功')


    driver.find_element_by_name("u").send_keys(url)

    driver.find_element_by_xpath("//*[@id='freelink']/div/div/div/button").click()

    driver.find_element_by_xpath("//*[@id='item_link_type']/label[4]").click()

    print(driver.find_element_by_xpath('//*[@id="preview_box"]').text)

    driver.quit()





if __name__=="__main__":
    seleni()
#preview_box

コード



抽出成功したもの

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(executable_path")
driver.implicitly_wait(10)
ID = "example"
PASS = "example"

URL ="https://books.rakuten.co.jp/rb/15993226/"


driver.get("https://grp02.id.rakuten.co.jp/rms/nid/vc?__event=login&service_id=61&return_url=%2Flink%2Fpc%2Fitem%3Ftype%3Ditem%26me_id%3D1213310%26item_id%3D19757894")


driver.find_element_by_name('u').send_keys(ID)
##loginInner_u
driver.find_element_by_name('p').send_keys(PASS)
#loginInner_p
driver.find_element_by_name('submit').click()
#loginInner > p:nth-child(3) > input
print('ログイン成功')

#driver.get("https://affiliate.rakuten.co.jp/")

driver.find_element_by_name("u").send_keys(URL)

driver.find_element_by_xpath("//*[@id='freelink']/div/div/div/button").click()



driver.find_element_by_xpath("//*[@id='item_link_type']/label[4]").click()
print(driver.find_element_by_xpath('//*[@id="preview_box"]').text)

driver.quit()
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • meg_

    2019/08/31 08:37

    取得したい要素は確実に存在しているのですよね?

    キャンセル

  • nisiya22

    2019/08/31 08:49

    存在しております。
    追加で抽出成功したものを記載しました。

    キャンセル

  • nisiya22

    2019/08/31 13:00

    自己完結致しました。
    誠にありがとうございます。
    処理が早すぎて要素を取り出せなかったようなのでこちらを追加しました。
    driver.implicitly_wait(10)

    キャンセル

回答 1

check解決した方法

+1

自己完結致しました。
誠にありがとうございます。
処理が早すぎて要素を取り出せなかったようなのでこちらを追加しました。
driver.implicitly_wait(10)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る