116272
UWSC 仮 掲示板
投稿時に「証明書が不正です」と出る場合には、JavaScriptをオン
動作不具合での質問の場合には環境を表記(OS,バージョン等)
タイトルは内容を表し、内容はネットゲーム関係禁止
自身でコードを書く気の無いナマケモノは特に質問禁止
失敗作でもコードを投稿すること(具体性の無い質問は無視される可能性大)

UWSC掲示板 が復活することを祈り、それまでの繋ぎとして。
環境設定[s7777777]

Selenium edge の再接続について / みつ
どうしてもフレーム操作が必要 (おそらくIEモードがサポートされる2029年頃まで) な為、
Selenium egdeへの再接続が以下で問題ないかご教授をお願いできないでしょうか。

左画面と右に上下2画面の3画面に分かれており、右上で入力検索を行い、右下の結果を取得するを繰り返すので
別画面を開いて対応できません(知識不足かもしれませんが)。

UwscWebDriver の SwitchFrame() で対応したかったのですが、最新のUwscWebDriverでも動きませんでした。
VBAでは動くことを確認できましたが、UWSCで動かしたいです。


edgeバージョン:109.0.1518.70 (公式ビルド) (64 ビット)
edgedriver バージョン:109.0.1518.70 
SeleniumBasicフォルダに msedgedriver.exe では動かなかった為、edgedriver.exe に名称を変更したらVBAでは動きました。現在はedgedriver.exeにしてあります。

前準備
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --remote-debugging-port=9222 --user-data-dir="C:\Users\Temp_ForEdge"
をbatファイルに記載し起動


driver = CreateOleObj("Selenium.WebDriver")
//driver.SetCapability "ms:edgeOptions", "{""debuggerAddress"":""127.0.0.1:9222""}" ←VBAではこれで再接続できます
driver.SetCapability("ms:edgeOptions", "{<#DBL><#DBL>debuggerAddress<#DBL><#DBL>:<#DBL><#DBL>127.0.0.1:9222<#DBL><#DBL>}") ← UWSCではここでCOM_Errorとなってしまいます。
driver.Start("Edge")
driver.Get("http://www3.rocketbbs.com/601/siromasa.html")

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

No.1541 2023/02/02(Thu) 14:10:44

Re: Selenium edge の再接続について / stuncloud
> <#DBL><#DBL>
<#DBL>一個でいいんじゃないでしょうか
VBAは"を"でエスケープしてますが、UWSCではそこは不要なので

No.1542 2023/02/02(Thu) 14:53:47

Re: Selenium edge の再接続について / みつ
stuncloud 様

毎度的確なご回答ありがとうございます。
ばっちり動きました。
これで何とか動かせそうです。


>VBAは"を"でエスケープしてますが、UWSCではそこは不要なので

知識不足でした。
勉強になります。

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

No.1543 2023/02/02(Thu) 18:07:40
Funcionの参照渡しから参照戻りについて / haku
下記にて受け取りができずに困っています。
ご助言よろしくお願いします。

HASHTBL Dic1 =HASH_SORT


Dic1 = Test(Dic1)
↑↑↑↑↑↑↑

Function Test(Var Dic)
Dic = HASH_REMOVEALL 
Result = Dic
FEND

No.1538 2023/01/24(Tue) 10:26:37

Re: Funcionの参照渡しから参照戻りについて / stuncloud
問題点は2つあります

> Function Test(Var Dic)

連想配列を受けるのであれば引数名に[]を付ける必要があります

Function Test(Var Dic[])

> Result = Dic

UWSCのユーザー定義関数は配列及び連想配列を戻り値として返す事ができません
参照渡しにより引数として渡した変数が書き換えられるので、ここでは戻り値も不要でしょう

procedure Test(var Dic[])
 Dic = HASH_REMOVEALL
fend

実行例は以下のようになります

HASHTBL Dic1 =HASH_SORT
// 要素を10個追加
for i = 0 to 9
 Dic1[i] = i
next

print length(Dic1) // 10
Test(Dic1)
print length(Dic1) // 0 (Test関数内でDic1の全要素が削除された)

No.1539 2023/01/24(Tue) 11:51:33

Re: Funcionの参照渡しから参照戻りについて / haku
ご助言に感謝しつつコードを修正します。
No.1540 2023/01/24(Tue) 14:10:44
既に開いている複数のEXCELをコントロールしたい / haku
既に開いている複数のEXCELをコントロールしたい。
EXCELを開いた数だけComを取得したいのですが、方法はありませんか?
For I = 0 to 100
COM_ERR_IGN
Dim EXCEL = GETACTIVEOLEOBJ("Excel.Application","",I)
print EXCEL
COM_ERR_RET
next

このように回してみても、最初の1つ目のComは取得できるのですが、2番目以降が取得できません。

ご助言よろしくお願いします。

No.1537 2023/01/07(Sat) 11:16:34
XLOPENでうまくエクセルが立ち上がらない。 / sen
いつもお世話になっております。
下記のようにしてエクセルを立ち上げて使用しています。

あるときから、家のパソコンではうまくいくのですが、会社のパソコンでは、
エクセルがうまく立ち上がらなかったり、ファイル表示がうまくされなくて実行できなくなりました。
一度、ファイルを立ち上げてから、保存して閉じてから実行するとうまくいくときもあります。

自分で作成して自分で動かしている別のUWSCのプログラムでうまくエクセルが閉じていないのが
原因だと思ったりもするのですが、原因を掴めません。
何かヒントになるようなものがあれば、ご教授ください。
よろしくお願い申し上げます。

※手がかりになるようなものがなくて済みません。

dim ファイル=input("ピッキング済リスト")
Excel = XLOPEN(ファイル)

No.1533 2022/10/03(Mon) 22:34:41

Re: XLOPENでうまくエクセルが立ち上がらない。 / リキュール
会社のパソコンはuwscのPro版が入っていますが?

XLOPENのファイル名にpath名、拡張子を記載したら?

No.1535 2022/10/17(Mon) 08:18:00

Re: XLOPENでうまくエクセルが立ち上がらない。 / sen
リキュール様、ありがとうございます。
色々と調べていて、エクセルの自動保存が駄目なのではないかと気付きました。

No.1536 2022/11/13(Sun) 09:52:08
別フォルダからのファイル名変更がうまくできません。 / みみ
別フォルダからのファイル名変更がうまくできません。

ren ああ.txt Sangonomiy.txt

UWSCで上記の文をBATファイルに記述し、起動しているのですがファイル名が変更されません。手動でBATファイルを起動するか、操作する.uwsファイルが同じフォルダにある場合は正しく実行されます。
どうも別のフォルダからだと操作できないようです。
起動するときにコマンプロンプトが一瞬表示されるので、BATファイルのパスが間違っているということはありません。DOSコマンドも試してみたのですが、同じような結果になりました。


CMD = "CD " + "C:\a"
DOSCMD("a.bat")
このような方法でカレントディレクトリを移動してから起動してもうまくいきませんでした。どうすればいいでしょうか。大量のフォルダを操作するため手動というわけにはいきません。

No.1534 2022/10/16(Sun) 19:03:42
UWSCを管理者として実行しているかチェック / みく
UWSCを管理者として実行しているかチェックすることはできるでしょうか。
No.1531 2022/09/15(Thu) 00:31:29

Re: UWSCを管理者として実行しているかチェック / stuncloud
def_dll IsUserAnAdmin():bool:shell32.dll

if IsUserAnAdmin() then
 print "管理者として実行されています"
else
 print "管理者として実行されていません"
endif

No.1532 2022/09/17(Sat) 04:08:27
Zipファイルの展開に失敗しました。 / DONQ
Edge用のWebDriverをダウンロードしようとすると
”Zipファイルの展開に失敗しました。”とエラーメッセージが出ます。
ブラウザ操作をするには手動でZIPファイルを解凍しなくてはいけません。
これは本来はZipファイルの解凍まで行ってくれるのでしょうか?

No.1527 2022/09/05(Mon) 14:51:11

Re: Zipファイルの展開に失敗しました。 / stuncloud
> これは本来はZipファイルの解凍まで行ってくれるのでしょうか?
はい

No.1528 2022/09/05(Mon) 23:15:25

Re: Zipファイルの展開に失敗しました。 / DONQ

msedgedriver.exeがフォルダにあるときはダウンロードしたバージョンのポップアップが出て成功した感じに見えるのですが、msedgedriver.exeがフォルダに無いときは”Zipファイルの展開に失敗しました。”と表示され解凍失敗します。

これはmsedgedriver.exeが上書きされているのでしょうか?
msedgedriver.exeが存在していないときには解凍失敗しているようなので、存在している時にも失敗しているのではないかと不安です。

また、回答に失敗する原因は何かありますでしょうか。必要な解凍ソフトが入っていないなどがあれば教えていただけますと幸いです。

No.1529 2022/09/07(Wed) 09:40:08

Re: Zipファイルの展開に失敗しました。 / stuncloud
質問はこちらで受け付けています
https://github.com/stuncloud/UwscWebDriver/issues/

No.1530 2022/09/07(Wed) 11:50:20
By.Attributeで指定したセレクタの隣接したタグを処理したい。 / Seti
UWSCWebDriverを使用しています。
チェックボックスになっている<input>をValue値を見てチェックするしないを選択したいです。
ただ、このサイトの仕様なのか<input>ではなくその直後の<SPAN>をクリックしないと反応しません。


次の記述ではチェックボックスをチェックできません。
driver.FindElement( By.Tag("input") + By.Attribute("type", "checkbox")+ By.Attribute("name", "checkbox")+ By.Attribute("value", 10000000_n) ).Click() 


ブラウザのデベロッパーツールでセレクターをコピーした下記の記述ならチェックできるのですがValue値を参照したいのでこれでは使えません。
driver.FindElement("#main-content > span > label > span").Click()


Valueを参照する以上はBy.Attributeを使うしかないと考えているのですが、By.Attributeを使って指定したセレクタの、その隣接タグや子要素タグを指定することはできるのでしょうか?




【HTML】

<span class="app-sps-checkbox">
<label>
<input type="checkbox" name="checkbox" value="10000000_n">
<span class="app-sps-checkbox__square"><span></span></span>
</label>
</span>

<span class="app-sps-checkbox">
<label>
<input type="checkbox" name="checkbox" value="10000001_n">
<span class="app-sps-checkbox__square"><span></span></span>
</label>
</span>

<span class="app-sps-checkbox">
<label>
<input type="checkbox" name="checkbox" value="10000002_n">
<span class="app-sps-checkbox__square"><span></span></span>
</label>
</span>

※Valueの値はランダム

No.1524 2022/08/20(Sat) 16:01:27

Re: By.Attributeで指定したセレクタの隣接したタグを処理したい。 / Seti
すみません、自己解決しました。下記でうまくいきました。

driver.FindElement( By.Tag("input") + By.Attribute("type", "checkbox")+ By.Attribute("name", "checkbox")+ By.Attribute("value", 10000000_n) + "+span").Click()

No.1525 2022/08/22(Mon) 17:35:50

Re: By.Attributeで指定したセレクタの隣接したタグを処理したい。 / stuncloud
// 0.10.1 より以下のように記述できます

builder = SelectorBuilder.New()
selector = builder.Tag("input")_
         .Attribute("type", "checkbox")_
         .Attribute("value", "10000000_n")_
         .NextSibling()_
         .Tag("span")_
         .Build()

print selector // input[type="checkbox"][value="10000000_n"] + span
element = driver.FindElement(selector)

No.1526 2022/08/23(Tue) 12:00:17
ファイル出力することなく配列を共有したい。 / haku
ファイル出力することなく配列を共有したい。

EXCELとUWSC間でファイル出力することなく、変数や配列を共有したいと考えています。
以前、Script directory をつかう方法を見かけたようなきがするのですが、情報をつかめないままです。

コードをお持ちの方、情報をご存じの方がおられましたら返信よろしくお願いいたします。

No.1517 2022/08/12(Fri) 18:58:45

Re: ファイル出力することなく配列を共有したい。 / haku
> ファイル出力することなく配列を共有したい。
>
> EXCELとUWSC間でファイル出力することなく、変数や配列を共有したいと考えています。
> 以前、Script directory をつかう方法を見かけたようなきがするのですが、情報をつかめないままです。
>
> コードをお持ちの方、情報をご存じの方がおられましたら返信よろしくお願いいたします。


追伸
EXCEL-UWSC間
EXCEL-EXCEL間
UWSC-UWSC間

上記の3点で可能な方法を探しています。

No.1518 2022/08/12(Fri) 20:13:23

Re: ファイル出力することなく配列を共有したい。 / stuncloud
Script directoryはScripting.Dictionaryのことですかね?
これでプロセス間通信はできないと思いますが…なんでしょうね?

僕はwinsockを使ってました
以下はIRC用ですが、クライアント側の実装になります
https://stuncloud.wordpress.com/2013/10/29/uwsc_irc_client/
こっちは超簡易HTTPサーバーの実装ですね
https://github.com/stuncloud/PoshUWSC/blob/master/HTTPServer.uws
一方がサーバー、もう一方がクライアントになりデータのやり取りができます

あとはしゅんさんのとこにプロセス間通信の記事があります
名前付きパイプ
https://junjun777.hatenablog.com/entry/20110811/uwsc_named_pipe
メモリマップドファイル
https://junjun777.hatenablog.com/entry/20160630/powershell_and_uwsc

ExcelはExcelVBAのことだと思いますけど、どのみちwinapiを使うので実装コストはUWSCでやるのとそこまで変わらないと思います

やり取りするデータはいろいろ工夫してください
(さすがに配列そのままでのやり取りは無理)

No.1519 2022/08/12(Fri) 21:06:00

Re: ファイル出力することなく配列を共有したい。 / haku
ご助言ありがとうございます。

Winsockになるのですね。
敷居が高いのでファイル出力する方向で考えます。

No.1523 2022/08/15(Mon) 19:22:16
doscmdで実行した日本語を含む文字結果が化ける / レフト
curlコマンドでphpを実行して結果を取得したいのですがうまくいきません。
コマンドプロンプト上では問題ない日本語で表示されますが
uwscだと文字化けしてしまいます・・・

print doscmd("curl https://***.***/***.php")

これも

print doscmd("curl https://***.***/***.php", false, false, true)

これも

textblock cmd
chcp 65001
curl https://***.***/***.php
endtextblock

print doscmd(cmd)

これも駄目でした。
実行しているphp側の問題でしょうか?

php実行結果をメールで飛ばすというCronもどきの動きをさせたいのが目的です。
おわかりになる方、代替案などでも結構ですのでアイデアがあれば教えてください。

No.1520 2022/08/12(Fri) 21:53:42

Re: doscmdで実行した日本語を含む文字結果が化ける / stuncloud
代替案です

Msxml2.XMLHTTPやWinHttp.WinHttpRequest.5.1など、COMでHTTPリクエストを送れるのでそれを使いましょう

xhr = createoleobj("Msxml2.XMLHTTP")
// メソッドとURLを指定、最後のFALSEにより受信完了まで待つ
xhr.open("GET", "https://***.***/***.php", FALSE)
// リクエストを送る
xhr.send()

// 結果を表示
print xhr.status // ステータスコード
print xhr.responseText // レスポンス本文

No.1521 2022/08/12(Fri) 22:51:29

Re: doscmdで実行した日本語を含む文字結果が化ける / レフト
stuncloud様

代替案の提示ありがとうございます。
COMでHTTPリクエストができて結果だけも得られるんですね。
勉強不足でした。

記載のコードで行いたかったことがすべてできました。
ご回答ありがとうございました。

No.1522 2022/08/15(Mon) 09:19:17

以下のフォームに記事No.と投稿時のパスワードを入力すれば
投稿後に記事の編集や削除が行えます。
200/200件 [ ページ : << 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 20 >> ]

- HOME - お知らせ(3/8) - 記事検索 - 携帯用URL - フィード - ヘルプ - メール - 環境設定 -

- Skin: Modern v2.0 - Author: ロケットBBS -

Rocket Board Type-X (Free) Rocket BBS