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

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

ただいまの
回答率

87.95%

VB Seleniumによりマーチャントセンターへのファイルアップロードを実現したい

受付中

回答 0

投稿

  • 評価
  • クリップ 1
  • VIEW 1,023

score 11

つまづいていること
マーチャントセンターで①[商品] > ②[フィード] > ③フィードを再処理の橫のタテ線クリック > [入力ファイルのアップロード] > [アップロードするファイルの選択]で④[見てみる]をクリック 
まではソース1の内容で動くのですが、このあとにフォルダで所定位置までディレクトリを開きファイルを指定するところが実現できません。これについてご助言頂きたくお願いします。 イメージ説明

環境はVisual Studio community 2017 version 15.8.5
プロジェクトはコンソールアプリ(.NET Framework)
下記ソース1は実体、ソース2はライブラリです

ソース1

Module Module1

    Sub Main()
        Dim driver As New C_Selenium
        driver.DriverSet("Chrome")
        ShoriMessage = driver.DriverNavigate("https://accounts.google.com/signin/v2/identifier?service=merchants&passive=1209600&continue=https%3A%2F%2Fmerchants.google.com%2FHome%3Fhl%3Djp%26fmp%3D1%26utm_id%3Dgfr%26mcsubid%3Djp-jp-z-g-mc-gfr%26_ga%3D2.106368330.818875313.1538526925-888211757.1538526925%23&followup=https%3A%2F%2Fmerchants.google.com%2FHome%3Fhl%3Djp%26fmp%3D1%26utm_id%3Dgfr%26mcsubid%3Djp-jp-z-g-mc-gfr%26_ga%3D2.106368330.818875313.1538526925-888211757.1538526925&hl=jp&flowName=GlifWebSignIn&flowEntry=ServiceLogin")
        ShoriMessage = driver.DriverXPathWait("//*[@id='identifierId']")
        ShoriMessage = driver.DriverXPathSendKey("//*[@id='identifierId']", "[login-id]")
        ShoriMessage = driver.DriverXPathWait("//*[@id='identifierNext']/content/span")
        ShoriMessage = driver.DriverXPathClick("//*[@id='identifierNext']/content/span")
        ShoriMessage = driver.DriverXPathWait("//*[@id='password']/div[1]/div/div[1]/input")
        ShoriMessage = driver.DriverXPathSendKey("//*[@id='password']/div[1]/div/div[1]/input", "login-pass")
        ShoriMessage = driver.DriverXPathWait("//*[@id='passwordNext']/content/span")
        ShoriMessage = driver.DriverXPathClick("//*[@id='passwordNext']/content/span")
        ShoriMessage = driver.DriverXPathWait("//*[@id='left-nav-main_products']/material-ripple")
        ShoriMessage = driver.DriverXPathClick("//*[@id='left-nav-main_products']/material-ripple")
        ShoriMessage = driver.DriverXPathWait("//*[@id='skinny-nav-main_products_sources']/material-ripple")
        ShoriMessage = driver.DriverXPathClick("//*[@id='skinny-nav-main_products_sources']/material-ripple")
        ShoriMessage = driver.DriverXPathWait("//*[@id='feeds-root']/scroll-host-with-footer/mso-feeds-dashboard/div/tableview/div/ess-table/ess-particle-table/div[1]/div/div[2]/div[3]/ess-cell[1]/mso-feeds-datasource-name/div[1]")
        If ShoriMessage <> "" Then
            ShoriMessage = driver.DriverXPathClick("//*[@id='left-nav-main_products']/material-ripple")
            ShoriMessage = driver.DriverXPathWait("//*[@id='skinny-nav-main_products_sources']/material-ripple")
            ShoriMessage = driver.DriverXPathClick("//*[@id='skinny-nav-main_products_sources']/material-ripple")
            ShoriMessage = driver.DriverXPathWait("//*[@id='feeds-root']/scroll-host-with-footer/mso-feeds-dashboard/div/tableview/div/ess-table/ess-particle-table/div[1]/div/div[2]/div[3]/ess-cell[1]/mso-feeds-datasource-name/div[1]")
        End If
        ShoriMessage = driver.DriverXPathClick("//*[@id='feeds-root']/scroll-host-with-footer/mso-feeds-dashboard/div/tableview/div/ess-table/ess-particle-table/div[1]/div/div[2]/div[3]/ess-cell[1]/mso-feeds-datasource-name/div[1]")
        ShoriMessage = driver.DriverXPathWait("//*[@id='feeds-root']/scroll-host-with-footer/data-source-details/div/tab-processing/div[1]/div[2]/material-button-dropdown/material-button")
        ShoriMessage = driver.DriverXPathClick("//*[@id='feeds-root']/scroll-host-with-footer/data-source-details/div/tab-processing/div[1]/div[2]/material-button-dropdown/material-button")
        ShoriMessage = driver.DriverTagNameWait("material-list-item")
        ShoriMessage = driver.DriverTagSubmit("material-list-item", "value", "Upload input file")
        ShoriMessage = driver.DriverTagNameWait("material-ripple")
        ShoriMessage = driver.DriverXPathClick("//*[@id='default-acx-overlay-container']/div[3]/material-dialog/focus-trap/div[2]/div/main/p/upload-file/div/material-checkbox/div[1]/material-ripple")
        ShoriMessage = driver.DriverXPathWait("//*[@id='default-acx-overlay-container']/div[3]/material-dialog/focus-trap/div[2]/div/main/p/upload-file/div/div[1]/span[3]")
        ShoriMessage = driver.DriverXPathClick("//*[@id='default-acx-overlay-container']/div[3]/material-dialog/focus-trap/div[2]/div/main/p/upload-file/div/div[1]/span[3]")
    End Sub
End Module

ソース2

Imports OpenQA.Selenium
Imports OpenQA.Selenium.Support.UI


Public Class C_Selenium
    Private Driver As IWebDriver
    Private DriverWait As WebDriverWait
    Private DriverType As String

    Public Function DriverSet(Arg_Type As String) As Boolean
        DriverType = Arg_Type
        If DriverType = "Chrome" Then
            Dim C As Chrome.ChromeDriverService
            C = Chrome.ChromeDriverService.CreateDefaultService
            C.HideCommandPromptWindow = True
            Driver = New Chrome.ChromeDriver(C)
        ElseIf DriverType = "IE" Then
            Dim I As IE.InternetExplorerDriverService
            I = IE.InternetExplorerDriverService.CreateDefaultService
            I.HideCommandPromptWindow = True
            Driver = New IE.InternetExplorerDriver(I)
        End If
        If Driver Is Nothing Then Return True
        DriverWait = New WebDriverWait(Driver, TimeSpan.FromSeconds(10))
        Return False
    End Function

    Public Function DriverNavigate(URL As String) As String
        Dim sErr As String = ""
        Try
            Driver.Navigate.GoToUrl(URL)
        Catch ex As WebDriverException
            sErr = ex.Message
        End Try
        Return sErr
    End Function

    Public Function DriverXPathSendKey(XPath As String, myStr As String) As String
        Dim sErr As String = ""
        Try
            Driver.FindElement(By.XPath(XPath)).Clear()
            Driver.FindElement(By.XPath(XPath)).SendKeys(myStr)
        Catch ex As WebDriverException
            sErr = ex.Message
        End Try

        Return sErr
    End Function

    Public Function DriverXPathWait(XPath As String) As String
        Dim sErr As String = ""
        Try
            DriverWait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.XPath(XPath))) '待機
        Catch WebTimeOutEx As WebDriverTimeoutException
            sErr = WebTimeOutEx.Message
        Catch WebEx As WebDriverException
            sErr = WebEx.Message
        Catch ex As Exception
            sErr = ex.Message
        End Try

        Return sErr
    End Function

    Public Function DriverXPathClick(XPath As String) As String
        Dim sErr As String = ""
        Try
            Driver.FindElement(By.XPath(XPath)).Click()
        Catch ex As WebDriverException
            sErr = ex.Message
        End Try

        Return sErr
    End Function
End Class
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

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

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

  • ただいまの回答率 87.95%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る