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

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

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

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Python 3.x

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

Python

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

selenium

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

Q&A

解決済

3回答

1100閲覧

pythonを使い、エクセルに入力してある日付けを抽出して、サイトの空欄に入力したい。

momo2

総合スコア21

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Python 3.x

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

Python

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

selenium

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

0グッド

0クリップ

投稿2019/05/06 17:23

以下のようにしてpythonを使い、エクセルに入力してある日付けを抽出して、
サイト内の空欄に
例)2019年5月7日
と入力させたいのですが。うまく行きません・
201905/07/01といったように頭に6桁?表示になります。
そのように対処したらよいのか、ご教示ください。

# iの場所を特定 v_si = driver.find_element_by_id('rdt-date') # Excelのiを入力 v_si.send_keys.datetime.date((v_Exceli), '%Y%m%d') # jの場所を特定 v_sj = driver.find_element_by_id('rdt-hour') # Excelのjを入力 v_sj.send_keys(v_Excelj) # kの場所を特定 v_sk = driver.find_element_by_id('rdt-minute') # Excelのkを入力 v_sk.send_keys(v_Excelk) # lの場所を特定 v_sl = driver.find_element_by_id('rdt-second') # Excelのlを入力 v_sl.send_keys(v_Excell)

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

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

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

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

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

can110

2019/05/07 02:11

対象サイトを提示すると回答得られやすくなるかと思います。
guest

回答3

0

ベストアンサー

一般的な<input type="date">要素において年に6桁入力されることを再現できました。
なお、年入力の後に右矢印キーを入力することで続けて月日を入力できることが確認できました。
以下検証コードです。

Python

1import time 2from selenium import webdriver 3from selenium.webdriver.common.keys import Keys 4 5driver = webdriver.Chrome(executable_path=r"~") 6driver.get("http://html5.cyberlab.info/elements/forms/input-type-date.html"); 7e = driver.find_element_by_name('sampleName') 8 9e.send_keys('2018') 10e.send_keys(Keys.RIGHT) 11e.send_keys('12/31') 12 13time.sleep(10) 14driver.quit()

投稿2019/05/07 07:05

can110

総合スコア38268

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

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

0

datetime.date((v_Exceli), '%Y%m%d')
の部分は、入力したい文字列が返ってきていますか?
printで確認するとどうなるでしょうか?

返ってきていない場合、

Python

1excelDate = datetime.date(2019,5,8).strftime("%Y%m%d")

のような形式をとる必要があるかと思います。
datetime --- 基本的な日付型および時間型

そのため、v_Exceli の値を、year, month, day の3つに分割して、
datetime.dateの引数として渡せばよいかと思います。

期待した文字列が返るようになったら、

Python

1# Excelのiを入力 2v_si.send_keys(excelDate)

のように、send_keys に引数として渡せば入力されると思います。

投稿2019/05/07 06:39

編集2019/05/08 01:40
mar-kn

総合スコア306

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

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

momo2

2019/05/08 03:11

ご連絡ありがとうございます。 excelDate = datetime.date(2019,5,8).strftime("%Y%m%d") こちらの方法でやりましたが、頭に6桁(年に部分)が先に入る為、 上手く3つに分割されないのです・・・
mar-kn

2019/05/08 05:15

v_Exceli はどのような値が入っているのでしょうか。 print した結果を提示いただけますか。 また、頭に6桁が先に入る というのは、 can110さんが提示してくださったコードを利用すれば解決できると思うのですが、 確認された結果はどのようになったのでしょうか。
momo2

2019/05/10 13:50

おそくなりました・・・すいません! can110さんのコードでしたら、うまくできました! 有難うございます! mar-kuさま、皆さま、有難うございます。 canさんのコードアドバイスに加えて、エクセルを年・月・日とさらに分け、使いやすく、しました。 有難うございます。
guest

0

ただの空欄で、そのページで入力補助が動いていない場合、「2019年5月7日」と入力したい場合は、

python

1v_si.send_keys.datetime.date((v_Exceli), '%Y%m%d') 2```の部分を 3```python 4v_si.send_keys.datetime.date((v_Exceli), '%Y年%m月%d日') 5```としてやればよいのではないでしょうか。

投稿2019/05/07 04:19

cugel

総合スコア220

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

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

momo2

2019/05/07 04:32

can様 お返事、ありがとうございます! https://www.navitime.co.jp/transfer/ 例えば、このようなサイトなどで、日付けの部分をエクセルに記入しておいて、 自動記入させていきたいと考えています。 *要素はこれとは異なりますが
momo2

2019/05/07 04:34

cugel様 お返事、ありがとうございます。 一度、こちらで試してみます。 また、報告します
momo2

2019/05/07 05:27

v_si.send_keys.datetime.date((v_Exceli), '%Y年%m月%d日') AttributeError: 'function' object has no attribute 'datetime' やりましたが、エラーがでます。 エクセル内の文字形式を日付けや標準にしましたがエラーが出てしまいます。。
can110

2019/05/07 06:08

コメント記載のページにはrdt-date要素はないようです。 また、提示ソースを実行するとAttributeError: 'function' object has no attribute 'datetime'エラーが発生します。 実際に「201905/07/01といったように頭に6桁?表示になります。」という現象が出たソースとURLページの提示をお願いします。
momo2

2019/05/07 10:41

mar-kn様 お返事ありがとうございます! ptrint文でやりましたが、以下のようなエラーが出てしまいます・・・ TypeError: Required argument 'month' (pos 2) not found
momo2

2019/05/07 10:47

can110様 検証までして頂きありがとうございます! URLページはもう大丈夫ですね、すいません。。。遅くなり。。。 年に6桁入力されてしまうのです。 アドバイス頂いた内容でやってみます。 一つ、私がもう試行錯誤してできたやり方があるのですが、、、 形式を「標準」にして、 ="00"&2019&5&7 このように入力したところ、入ることは確認できましたが 頭2つをわざと0にしてみました。 ですが、仰るように右→の方法で書いてみようと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問