tcu16103
@tcu16103

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

質問 調査依頼

Q&A

Closed

使用するライブラリについて

今回の質問は、以下Githubのリポジトリのクラスを全てマクロファイルに
インポートし、VBAでChromeのdom操作を行う上での質問です。

解決したいこと

添付画像とソースコードを見てほしいです。
今回のWebサイト上のそれぞれの入力欄に文字を入力させたい、
選択形式の欄では選択肢を選択させたいです。

このWebサイトについて

このWebサイトはメールアドレス、パスワードでログインが必要ですが、
捨ててもいいメールアドレスでアカウント登録してあります。
URL、メールアドレス、パスワードはソースコード中に記載してあります。

また、このサイト環境は無料トライアル期間(14日間)が過ぎるとアクセスできなくなります。
このアカウントは、2023/10/19に登録したので、2023/10/19から14日間です。

※記載したソースコードについては、あくまでこのような処理を行いたいというイメージになります。
XPathを貼り付けただけで、実際には動作しません。。。

ログイン画面.png
ログ入力画面01.png
ログ入力画面02.png

ソースコード

'---------------------------------------------------------------------------------------------
'---------------------------------------------------------------------------------------------
Sub freshlog()
    Dim chrome As IWebDriver
    Set chrome = New ChromeDriver
    chrome.OpenURL "https://company99vba.freshservice.com/a/tickets/new"
    
    '----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    '---------------------------------------ログイン画面で、なぜかSetTextした文字列が消えてしまう--------------------------------------------------------------------------------------------------
    '----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    chrome.WaitForElementToAppearByXpath "/html/body/div[4]/div[2]/div/div/div/div/div/div[2]/div[1]", 30
    Application.wait Now() + TimeValue("00:00:03")
    
    'メールアドレス
    chrome.FindElementByXPath("/html/body/div[4]/div[2]/div/div/div/div/div/div[2]/div[1]/form/div[2]/div[1]/div[2]/div/div/input").SetText "sutemailaddress53+03@gmail.com"
    Application.wait Now() + TimeValue("00:00:01")
    'パスワード
    chrome.FindElementByXPath("/html/body/div[4]/div[2]/div/div/div/div/div/div[2]/div[1]/form/div[2]/div[2]/div[2]/div/div/input").SetText "cVBn-099"
    Application.wait Now() + TimeValue("00:00:01")
    
    'Sign inボタンをクリック(入力した文字が消えてしまうため、コメントアウト中)
    'chrome.FindElementByXPath("/html/body/div[4]/div[2]/div/div/div/div/div/div[2]/div[1]/form/div[2]/div[4]/div/button").Click
    
    
    '----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    '---------------------------------------以下はログ入力画面-------------------------------------------------------------------------------------------------------------------------------------
    '----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    chrome.WaitForElementToAppearByXpath "/html/body/div[4]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]", 30
    Application.wait Now() + TimeValue("00:00:03")
    
    '依頼者欄に社員番号を入力
    chrome.FindElementByXPath("/html/body/div[3]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[1]/div/div[1]/div[1]/div[1]/input").SetText "10009902"
    '検索ヒットした依頼者をクリック
    chrome.FindElementByXPath("/html/body/div[6]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[1]/div/div[1]/div[1]/div[2]/div/ul/li").Click
    
    '件名を入力
    chrome.FindElementByXPath("/html/body/div[6]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[4]/input").SetText "請求伝票から登録日と金額を教えてほしい。"
    
    'ステータス欄をクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[6]/div[1]/div[1]").Click
    '完結済みをクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[6]/div[1]/div[2]/div/ul/li[3]").Click
    
    'グループ欄をクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[10]/div[1]/div[1]/input").Click
    'S/4_SYSTEMをクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[10]/div[1]/div[2]/div/ul/li[12]").Click
    
    'エージェント欄をクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[11]/div[1]/div[1]").Click
    'employee 03をクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[11]/div[1]/div[2]/div/ul/li[3]").Click
    
    '詳細を入力
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[13]/div[1]/div[3]/div/div").SetText "登録日 2023/10/1 金額 ¥9,300"
    
    'カテゴリ欄をクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[14]/div[1]/div[1]/input").Click
    'Customer Paymentをクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[14]/div[1]/div[2]/div/ul/li[19]").Click
    
    'サブカテゴリ欄をクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[15]/div[1]/div[1]/div[1]").Click
    'Credit Noteをクリック
    chrome.FindElementByXPath("/html/body/div[7]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/form/div[1]/div/div[15]/div[1]/div[1]/div[2]/div/ul/li[3]").Click
    
    '送信ボタンをクリック
    chrome.FindElementByXPath("/html/body/div[8]/div[9]/div[2]/div[1]/div/div/div[1]/div[2]/div[2]/div/button[2]").Click
    
End Sub

'---------------------------------------------------------------------------------------------
'---------------------------------------------------------------------------------------------

課題に感じていること、特に教えていただきたい点

①ログイン画面で、メールアドレスとパスワードを入力した後すぐに消えてしまう
②依頼者の入力欄で単に文字列を入力するだけだと、最後に送信ボタンを押下した際にエラーになる。
 入力欄で検索し、検索ヒットしたのを選択する必要があると思われるが、それがうまくいかない

③選択式の入力欄すべてにおいて、SelectItemInSelectBoxByTextは使用できず、.Clickを使ってもうまくいかない。

④「詳細を入力」の欄で、Excelのセルの値からコピペで入力させたいが、
.SetTextContentを使用すると改行が全て無視されてしまう。.SetTextだと入力自体できない。
※Excelの一つのセルに、以下のように3行の文字列が入力されているとして、
そのセルを参照して「詳細を入力」の欄に入力させたい。

請求伝票 1699999999
登録日 2023/10/01
金額¥9,500

0

2Answer

Comments

  1. @tcu16103

    Questioner

    @SurferOnWwwさん

    Githubで公開されている、とあるライブラリを使用する上での質問だからです。

⇒一時的な変更であれば、Ctrlキーを押しながらマウスホイールで変更可能です。
一時的な変更ではなく、固定した大きさにしたい場合は、IEで設定が必要になります。
FAQページから、”TEST画面の文字サイズを変更したい”をご確認頂くようお伝え致しました。

【付記】
①インターネットエクスプローラー(以下IE)の文字コードの変更します。
IEメニューの「表示」-「エンコード」から「日本語(シフトJIS)」を選択して下さい。
 ※「日本語(シフトJIS)」がグレーアウトして選択出来ない場合は、
   インターネットで適当なページを表示した状態で変更して下さい。
 ※IEで文字化けが起きる事がありますが、気にせず手順②へ進んで下さい。
 ※メニューが表示されていない場合、キーボードの「Alt」キーを押すと表示されます。

②「表示」-「文字のサイズ」から文字サイズの変更します。
 ※この段階でTEST画面の文字サイズが変更されます。
※現在開かれているTEST画面には反映されませんので、
   その場合はメニューからTEST画面を開き直して下さい。

③「表示」-「エンコード」から文字コードを「Unicode(UTF-8)」へ戻します。(IEの文字化けを直します。)
 ※文字化けが直らない場合は、IEの再起動をお願い致します。

0Like

Your answer might help someone💌