投稿

ラベル(VBA)が付いた投稿を表示しています

SeleniumuBasicで起動するプロファイルを指定してChromeを起動する。

 少し特殊な設定をしたchromeの自動運転する場合デフォルトのプロファイルだとうまく対応できないので。設定方法。 以下を参考にしたが、うまくいかなかったのでその分の修正も含めて https://programan.org/seleniumbasic-browsers-profile/ まず、Chromeでプロファイルを作成する。なんでもいいし、google アカウントに紐付いてなくても良い。(紐付けると、紐付いた状態で起動できるかもしれない、確認していない。) Chromeのプロファイルパスを確認する Chromeを起動して chrome://version/ で確認できる。 プロフィール パス  C:\Users\XXXXX\AppData\Local\Google\Chrome\User Data\Profile 3 とかって出ていると思われます。「Profile 3」はすでに作成しているプロファイルの数に応じて書かれる、1つ目だと・・・・じぶんで調べて vbsエディタで Dim driver As New ChromeDriver driver.SetProfile "C:\Users\XXXXX\AppData\Local\Google\Chrome\User Data\Profile 3\" driver.Get "http://www.yahoo.co.jp" で記載するだけで、プロファイルが使われるがここで一つ落とし穴が。 この設定でSeleniumuBasicで読み込まれるプロファイルは  "C:\Users\XXXXX\AppData\Local\Google\Chrome\User Data\Profile 3\Default" というわなが・・・・・ 通常の方法で手動起動したChromeのプロファイルが"C:\Users\XXXXX\AppData\Local\Google\Chrome\User Data\Profile 3\"に保存されるので、 ここのファイルディレクトリのうち 「Default」以外を 「Default」にコピーする これで、例えばテストサイトで証明書とかとっていないサイトからダウンロードする際に、 安全で無いダウンロードがブロックされました...

古いEXCELのVBA

 Officeを64bitに移行して使い始めてはや数年、 1995年くらいからちょっとずつ作ってきたEXCELのVBA(.xls)をしばらく使っていなかったが、久々に使うことにした。シート自体は書き込みできるのでデータのストレージとしては使っていたが、処理系は置いたままだった。で一念発起して修正を加えようと思った 結果から言うと動かすだけなら起動時にでるエラーの箇所の「Declare」を「Declare PtrSafe」に変更するだけ。例えば Declare  Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA"  (ByVal nDrive As String) As Long      ↓ Declare PtrSafe Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long  で取りあえず動いた。わりと、かんたんに修正が終わった。 でついでに.xlsから.xlsmにしておこうと思ったら悲劇が。オブジェクトの「CommandButton 3 」の数字部分がむちゃくちゃに、ボタン押しても他の機能が発動。 これ全部修正するの面倒くさいぞ。 ってなって,取りあえず。.xlsのままで利用、少しだけ延命できた。

Seleniumu Basic とChromedriveでExcelで久々にwebスクレイプ(アコーディオンが閉じているとクリックできない、あたりまえだよね)

 久々に、Seleniumu Basicを使ってwebスクレイプをしたのだがおおはまりした。 スクレイプする時にcssのセレクターで選択すればいいやと思っていたのだが、ずっとエラーになる。 seleniumで非表示の要素は操作できない をみて納得、1回アコーディオンを開くためにクリックして、その後セレクターでアクセする、必要がある。久々にはまったぜ。  

Seleniumu Basic とChromedriveでExcelでwebスクレイプ

Chromedriveの 2019/04/24 12:01の75.0.3770.8だとうまくボタンを押せない Chromedrive 2019/03/12 12:15 だと74.0.3729.6 では動く Chromeのバージョンは75.0.3770.80(64bit) バージョン合わさなくてもいいのか? ちなみにChromedriveのインストール先は USERフォルダーの    \AppData\Local\SeleniumBasic  です.