VBAを利用して、chromeに表示されているリンクをクリックしたいです

4,689 views
Skip to first unread message

柳沢由香里

unread,
Jan 20, 2018, 11:36:58 PM1/20/18
to 日本Seleniumユーザーコミュニティ
はじめまして。
柳沢と申します。

業務上、chromeから同じ操作を何度も行う為、
非常に効率が悪く、時間もかかる為、苦痛に感じており、
WEBページを探してこのサイトにたどりつきました。

・サイトにログイン(できた)

 →これはVBAにモジュールを書き込み、実行させてできました。
  ID、PASS入力、ログインボタンクリックまでは作成、動作させることができました。
  driver.findElementByName("username").SendKeys "XXXX"
       driver.findElementByName("submit").Click
  
・リンクをクリックして画面遷移させる
 →頑張って調べたのですが、書き方がわかりませんでした。。。

  css selectorかxpathを利用して、locatorを入力してあげれば、
  画面遷移できるようですが、書き方がわからず…。
   
   検証→ソースを表示→Xpathをコピーしたものが下記です

   //*[@id="gen_body"]/table/tbody/tr/td[2]/div[5]/map/area[15]

   driver.findElementByName("ここにどのように入力してやれば、クリックしてくれるのでしょうか?").Click

 基本的な事を質問してしまい、申し訳ございません。
 どなたかご教授いただけないでしょうか。。。

 よろしくお願いいたします。

戸田広

unread,
Jan 21, 2018, 1:41:13 AM1/21/18
to 柳沢由香里, 日本Seleniumユーザーコミュニティ
次のような感じです。
    driver.findElementByXPath("//*[@id=\"gen_body\"]/table/tbody/tr/td[2]/div[5]/map/area[15]").Click


findElementByName
    name属性で要素を特定します。
findElementById
    id属性で要素を特定します。
findElementByCssSelector
    CSSセレクタで要素を特定します。
findElementByXPath
    XPathで要素を特定します。
findElementByLinkText
    <a>要素で表示されている文字列で要素を特定します。



2018年1月21日 13:36 柳沢由香里 <yukari.yan...@gmail.com>:

--
このメールは Google グループのグループ「日本Seleniumユーザーコミュニティ」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには seleniumjp+unsubscribe@googlegroups.com にメールを送信してください。
このグループに投稿するには selen...@googlegroups.com にメールを送信してください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

柳沢由香里

unread,
Jan 21, 2018, 2:16:46 AM1/21/18
to 戸田広, 日本Seleniumユーザーコミュニティ
はじめまして。

戸田様

お忙しいところ、お返事いただきまして、ありがとうございます。

driver.findElementByXPath("//*[@id=\"gen_body\"]/table/tbody/tr/td[2]/div[5]/map/area[15]").click

構文エラーが表示され、実行不可でした。。。

HTML記載内容
<area shape="rect" coords="239,301,347,335" href="index.php?action=Stock_Stocklist_History" alt="受払履歴" title="受払履歴">

CssSelector記載内容

#gen_body > table > tbody > tr > td:nth-child(2) > div:nth-child(8) > map > area:nth-child(15)


1週間程悩んで調べてみたのですが、自力解決できず。。。

「受払履歴」のリンクをクリックさせたいだけなんですが、つまっています。。。

要素を特定する場合の書き方が理解できていません。。。

柳沢




2018年1月21日 15:41 戸田広 <hiros...@ossaaaan.com>:
次のような感じです。
    driver.findElementByXPath("//*[@id=\"gen_body\"]/table/tbody/tr/td[2]/div[5]/map/area[15]").Click


findElementByName
    name属性で要素を特定します。
findElementById
    id属性で要素を特定します。
findElementByCssSelector
    CSSセレクタで要素を特定します。
findElementByXPath
    XPathで要素を特定します。
findElementByLinkText
    <a>要素で表示されている文字列で要素を特定します。



2018年1月21日 13:36 柳沢由香里 <yukari.yanagisawa1123@gmail.com>:

戸田広

unread,
Jan 21, 2018, 6:21:02 AM1/21/18
to 日本Seleniumユーザーコミュニティ

> 構文エラーが表示され、実行不可でした。。。

VBAでのエスケープのやり方を間違っていました、失礼しました。
    driver.findElementByXPath("//*[@id=""gen_body""]/table/tbody/tr/td[2]/div[5]/map/area[15]").click
これなら構文エラーは出ませんよね?

ご例示のCSSセレクターを使う場合は、呼び出す関数が変わり、次のようになります。
    driver.findElementByCssSelector("#gen_body > table > tbody > tr > td:nth-child(2) > div:nth-child(8) > map > area:nth-child(15)").click



2018年1月21日日曜日 16時16分46秒 UTC+9 柳沢由香里:

2018年1月21日 13:36 柳沢由香里 <yukari.yan...@gmail.com>:
はじめまして。
柳沢と申します。

業務上、chromeから同じ操作を何度も行う為、
非常に効率が悪く、時間もかかる為、苦痛に感じており、
WEBページを探してこのサイトにたどりつきました。

・サイトにログイン(できた)

 →これはVBAにモジュールを書き込み、実行させてできました。
  ID、PASS入力、ログインボタンクリックまでは作成、動作させることができました。
  driver.findElementByName("username").SendKeys "XXXX"
       driver.findElementByName("submit").Click
  
・リンクをクリックして画面遷移させる
 →頑張って調べたのですが、書き方がわかりませんでした。。。

  css selectorかxpathを利用して、locatorを入力してあげれば、
  画面遷移できるようですが、書き方がわからず…。
   
   検証→ソースを表示→Xpathをコピーしたものが下記です

   //*[@id="gen_body"]/table/tbody/tr/td[2]/div[5]/map/area[15]

   driver.findElementByName("ここにどのように入力してやれば、クリックしてくれるのでしょうか?").Click

 基本的な事を質問してしまい、申し訳ございません。
 どなたかご教授いただけないでしょうか。。。

 よろしくお願いいたします。

--
このメールは Google グループのグループ「日本Seleniumユーザーコミュニティ」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには seleniumjp+...@googlegroups.com にメールを送信してください。

柳沢由香里

unread,
Jan 22, 2018, 5:58:16 AM1/22/18
to 戸田広, 日本Seleniumユーザーコミュニティ
こんばんは

戸田様

おかげさまで、解決しました!
本当にありがとうございました。

戸田様のおかげで、
locatorを指定する場合、XpathとSelector、
両方指定するやり方が出来るようになりました。

両方共、正常動作致しました。

本当に本当にありがとうございました。

また詰まったら、1週間を目安に調べて、
それでもわからず、自力解決できなかったら、
問い合わせさせていただくかと思います。

その時は、ぜひ、よろしくお願いいたします。

ありがとうございました。

柳沢

2018年1月21日 20:21 戸田広 <hiros...@ossaaaan.com>:

--
このメールは Google グループのグループ「日本Seleniumユーザーコミュニティ」のトピックを登録しているユーザーに送られています。
このトピックの登録を解除するには https://groups.google.com/d/topic/seleniumjp/pfPHOdN6hbk/unsubscribe にアクセスしてください。
このグループを退会し、グループのすべてのトピックの登録を解除するには seleniumjp+unsubscribe@googlegroups.com にメールを送信してください。
Reply all
Reply to author
Forward
0 new messages