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

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

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

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

Python 3.x

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Python

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

selenium

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

Q&A

解決済

1回答

6362閲覧

python/seleniumを使用して、あるウェブサイトへ繰り返し別々のデータを送信したい

soniroji

総合スコア18

Chrome

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

Python 3.x

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Python

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

selenium

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

0グッド

0クリップ

投稿2018/05/27 13:30

前提・実現したいこと

python/seleniumを使用して、あるウェブサイトへ繰り返し別々のデータを送信したい
例)A1~10、B1~10、C1~10のデータが入力されているCSVファイルを用意
あるウェブサイトでA、B、Cをそれぞれ入力する必要がある
まずA1、B1、C1を入力し処理が終了したら
最初に戻って次はA2、B2、C3を入力し・・
のようなデータがある分だけ繰り返しの処理をしていきたい。

試したこと

#coding: utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select

driver=webdriver.Chrome()
driver.implicitly_wait(30)
driver.get("URL")

driver.find_element_by_name("AAA").click()
driver.find_element_by_name("name").send_keys(u"A1")
driver.find_element_by_name("name2").send_keys(u"B2")
driver.find_element_by_name("name3").send_keys(u"C3")
driver.find_element_by_name("BBB").click()

上のようなコードでCSVは使わずA1~C3まですべて直接入力し、自動化はできたのですが
外部のファイルを使用してのやり方がわからず・・
ここからどのようなコードを使用すればいいのか教えていただけると幸いです。
またこのようなサイトは初めてなので、ほかに共有すべき必要な情報等あれば教えてください。

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

python3.6.4
chrome webdriver
selenium
windows64bit使用

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

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

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

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

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

pumper

2018/05/27 14:33

csvに書かれている値をあるサイトの入力フォームに入力したいということでしょうか?
soniroji

2018/05/27 15:27

はい。おっしゃる通りです。入力フォームが「フルーツ」だとして、「りんご,みかん,ぶどう」というcsvデータがあります。1回目、「フルーツ」に「りんご」を入力し送信して終了。その後また最初から新たなブラウザで同じページを開き、次は「みかん」という値を入力するといった感じで繰り返し処理するにはどうすればいいでしょうか。よろしくお願いします
guest

回答1

0

ベストアンサー

既に固定の文字列をsend_keysでサイトのformに入力できているので,固定の文字列をcsvから読み込み,動的な値を入力する必要があります.
まずはcsvから値を読み込むことから始めます.

csv

1code, name 21,桃 32,パイナップル 43,みかん

というcsvファイルがあるとします.このcsvの値を取得するには

python

1import csv 2 3with open('test.csv', 'r', encoding="utf-8") as f: 4 reader = csv.reader(f) //header(code,name)を飛ばす 5 header = next(reader) 6 for code, name in reader: 7 print(code, name) 8 91102 パイナップル 113 みかん

と書くことができます.
あとはpython_taroさんが用意しているcsvの形式に従ってサンプルコードをいじってsend_keyメソッドの引数に渡せばできると思います.

投稿2018/05/27 15:57

pumper

総合スコア33

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問