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

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

新規登録して質問してみよう
ただいま回答率
85.46%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

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

selenium

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

Q&A

解決済

1回答

978閲覧

【Python】SeleniumのWeb driverを使用してWebページのボタンなどを自動でクリック

sasu46

総合スコア9

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

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

selenium

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

0グッド

1クリップ

投稿2021/08/07 11:22

編集2021/08/07 23:59

1日以上、この問題で悩んでいるので質問させていただきます。

【やりたいこと】

求人検索条件画面→都道府県をクリック→東京を選択→職種を選択をクリック→大分類をクリック→建設、土木、電気工事を選択→決定

※今回のコードは求人検索条件画面→都道府県をクリック→東京を選択→職種を選択をクリックまでのコードしか書いていません。大分類をクリックからできないので。

**
【できないこと】**

大分類をクリック→建設、土木、電気工事を選択→決定 

が、できないです

イメージ説明

【試したこと】

今までのようにクリックする動作を当てはめて
element = driver.find_element_by_id("ID_rank1Code")と書いてみました。

検証を押してid名も間違っていないのにクリックできません。

click()追加してみても状況は変わりません。

cssセレクタを使用しても状況は変わりません。

pathを使用したコードを書いてみても状況は変わりません。

【エラー】

エラーなどは特に出ず、実行できます。
問題のところでだんまりだけです。

Python

1from selenium import webdriver 2from selenium.webdriver.support.ui import Select 3import time 4from bs4 import BeautifulSoup 5import pandas as pd 6import csv 7 8 9 10driver = webdriver.Chrome(自分のpath) 11 12 13url = 'https://www.hellowork.mhlw.go.jp/kensaku/GECA110010.do?action=initDisp&screenId=GECA110010' 14 15driver.get(url) 16 17element = driver.find_element_by_id("ID_tDFK1CmbBox") 18Select(element).select_by_value("13") 19time.sleep(1) 20 21driver.execute_script("openCodeAssist('3','7','kiboSuruSKSU1Hidden','kiboSuruSKSU1Label','1','','-1','','','');").click() 22time.sleep(1) 23 24element = driver.find_element_by_id("ID_rank1Code") 25Select(element).select_by_value("10") 26time.sleep(1)

皆さんのお力をお借りしたいです。

本当に調べても分からなかったので今回質問をさせていただきました。
アドバイスやヒントでも良いので教えていただけたら幸いです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

.click()は、例えばdriver.find_element_by_class_name('example')等と
要素を指定している場合に、その要素に対して使用出来るメソッドです。
driver変数に対し[スクリプトを実行してください]という命令のコードなわけですが
[スクリプトを実行してください]というコードに対しにクリックしてくださいと命令してしまっています。
↑ちょっとこの説明自体も日本語としても意味がわかりませんよね?

そんなコードになってしまっているという事です。
以下を修正する事で正常に動作すると思います。

diff

1- driver.execute_script("openCodeAssist('3','7','kiboSuruSKSU1Hidden','kiboSuruSKSU1Label','1','','-1','','','');").click() 2 3+ driver.execute_script("openCodeAssist('3','7','kiboSuruSKSU1Hidden','kiboSuruSKSU1Label','1','','-1','','','');")

投稿2021/08/08 09:43

編集2021/08/08 09:48
nto

総合スコア1438

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

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

sasu46

2021/08/08 10:46

ntoさん!ご回答ありがとうございます! コードを実行していましたところ、正常に動作しました! なるほど。スクリプトを実行してくださいというコードに対してクリックしてくださいと命令していたのですね。。 まさか、原因が私の思っていたところと全然違っていたので今、びっくりしています。 すごく勉強になりました!ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問