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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

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

Q&A

0回答

860閲覧

pythonでリンクをクリックしたいがうまくできません。

nn1245

総合スコア0

Chrome

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

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

0グッド

0クリップ

投稿2021/08/06 13:49

編集2021/08/10 06:04

前提・実現したいこと

大学の未提出課題を一覧にするコードを書きたいです。

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

```html <a href="course_563036" title="経済データ分析a" style="width:215px;" >経済データ分析a</a>

この要素を取得してクリックを行い、課題が載っているページに行きたいのですができません。
直接課題が載っているページに行こうとしてもログインが求められ、最初のページに戻るのでそれもできません。
no such element:
Unable to locate element: {"method":"link text","selector":"経済データ分析a"}
と表示されます。
(触っていたらno such elementは表示されなくなりましたが依然としてクリックはできていません。)

economicdata = driver.find_element_by_link_text("経済データ分析a") economicdata.click

試したこと

find_element_by_class_nameでそれらしきclassの名前を入れてみたができなかった。
xpathを使ってやろうとしたができなかった。(Chromeのxpath copyからコピーして貼り付けたので間違っていないと思います。)

補足情報(FW/ツールのバージョンなど)

python

1import sys 2import time 3from selenium import webdriver 4import os 5os.chdir("c:/Users/xx/OneDrive/デスクトップ/python/") 6import requests 7from bs4 import BeautifulSoup 8def AutoLogin(): 9 10 driver = webdriver.Chrome('C:\Program Files\Google\Chrome\Application\chromedriver_win32\chromedriver.exe') 11 12 url1 = "https://portal.xxx.ac.jp/" 13 14 driver.get(url1) 15 16 login_id = driver.find_element_by_name("j_username") 17 login_pw = driver.find_element_by_name("j_password") 18 19 userid = "xxxxxx" 20 userpw = "xxxxxx" 21 login_id.send_keys(userid) 22 login_pw.send_keys(userpw) 23 24 login_btn = driver.find_element_by_name("login") 25 login_btn.click() 26 27 manaba_btn = driver.find_element_by_class_name("external_manaba_link") 28 manaba_btn.click() 29 30 handle_array = driver.window_handles 31 driver.switch_to.window(handle_array[1]) 32 33 economicdata = driver.find_element_by_link_text("経済データ分析a") 34 economicdata.click

パスワードを入力してログインボタンを押すことや、manabaのボタンを押すことはできました。
そこから先ができていません。manabaは新規タブで開きます。それが影響しているのでしょうか?

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

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

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

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

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

odataiki

2021/08/07 01:07

質問文を編集してコードを「<code>(コードの挿入)」の中に含めると インデント含みでコードが表示されますので より多く回答がもらえると思います。 現状インデントが全くない状態のため、質問者さんのコードをこちらで正しく実行することが出来ません。 (想像でインデントを付けることは出来ますが、実際のコードと異なる可能性がある)
nn1245

2021/08/09 15:22

修正依頼ありがとうございます。私は初学者で初めての質問なのでいろいろ質問の仕方が良くないと思いますが、その他にもなにかありましたら修正依頼是非お願いします。
bsdfan

2021/08/09 23:16

ページのロードが追いついていないとか、ないですか? time.sleep(xx)とかでウェイトを入れて試すとどうでしょうか。 ちゃんとwaitをいれるなら https://selenium-python.readthedocs.io/waits.html を参考に。
nn1245

2021/08/10 06:07

ご意見ありがとうございます。スリープを入れてみましたが変わりませんでした。また、no such elementが触っているうち(driver.find_element_by_link_textで実行)に表示されなくなりましたが、結果は変わりませんでした。
nn1245

2021/08/10 07:45

クリック先のURLをdriver.get(URL)で実行すると開けるでhrefからURLを参照することができればできますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問