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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

selenium

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

Q&A

1回答

2051閲覧

Ruby + Selenium で画像のアップロードを自動で行いたいです。

nonn1nonn

総合スコア13

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

selenium

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

0グッド

0クリップ

投稿2019/01/24 13:12

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)ruby + seleniumでシステムを作っています。
画像のアップロードをしようと試みているのですが、うまくいきません。

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

画像のアップロードがseleniumでできないです。

該当のソースコード

ruby

1#!/usr/bin/env ruby 2## 3require 'selenium-webdriver' 4caps = Selenium::WebDriver::Remote::Capabilities.chrome( 5 "chromeOptions" => { 6 "args" => ["プロファイルを入れています"] 7 }) 8driver = Selenium::WebDriver.for :chrome , :desired_capabilities => caps 9 10class Selenium::WebDriver::Driver 11 def xpath( query) 12 ret = self.find_elements( xpath: query ) 13 return ret[0] if ret.size==1 14 return ret 15 end 16 def goto ( url ) 17 self.navigate.to url 18 end 19 20end 21 22driver. get ('https://www.hogehoge.com/jp/login/') 23 24driver.find_element(:id, 'google-login').click 25 26sleep 2 27 28driver.find_element(:class_name, 'footer-sell-btn').click 29 30sleep 10 31 32up = driver.find_element(:xpath, '//*[@id="sell-container"]/div/div/form/div[1]/div/div[1]/div') 33up.send_keys('/user/[私のname]/desktop/test/IMG_1520.jpg') 34sleep 10 35 36driver.close()

試したこと

パスを指定したりしました。

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

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

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

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

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

guest

回答1

0

具体的なサイトであれば的確なコメントができそうですが、
コードを見る限りは
up = driver.find_element(:xpath, '//*[@id="sell-container"]/div/div/form/div[1]/div/div[1]/div')
で取得している要素が意図しているものかどうかがまず気になります。
input要素に画像を指定するケースであれば上記コードでできそうではあります。

あと、Seleniumとしてのコメントではないですが
このオーバーライドの定義は上のスクリプトでは不要(標準で事足りる)ではないかと思います。

class Selenium::WebDriver::Driver def xpath( query) ret = self.find_elements( xpath: query ) return ret[0] if ret.size==1 return ret end def goto ( url ) self.navigate.to url end end

投稿2019/02/07 01:42

oh_rusty_nail

総合スコア319

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問