FILEMAKER プラグイン など フォーラム

FILEMAKER プラグイン など (助け合い)フォーラムにようこそ!

何方でも、ご質問・ご回答お願いします。

※2024/01/31 までに登録された方は、登録時のパスワードが使えません。

パスワードを再発行してください。

ログインしていません。

#1 2017-10-06 08:44:41

mama
メンバー
登録日: 2017-10-06
投稿: 33

チェックボックスの取得方法を教えてください。

いつもお世話になります。
よろしくお願いいたします。

環境FM13 WIN7 クローム

チェックボックスにチェックが入っているかを調べるにはどのようにすればよろしいでしょうか?


■HTML側

●チェックが入っていない場合
<input type="checkbox" name="hyoji" value="Y" >

●チェックが入っている場合
<input type="checkbox" name="hyoji" value="Y" checked>


■ファイルメーカー側

<#チェックボックスにチェックを入れる#>
$element = $driver.FindElement([OpenQA.Selenium.By]::xpath('//input[text=\"checked\"]'));
if(!$element){
$elements[0].Click();
};

上記のようにしても、チェックボックスの判定ができません。

お手数となりますが、ご教授のほどよろしくお願い申し上げます。

オフライン

#2 2017-10-06 10:25:36

admin
管理者
登録日: 2017-06-10
投稿: 87

Re: チェックボックスの取得方法を教えてください。

Seleniumを使用ですね。FileMaker  + ScriptMakerPS + Powershell + Selenium + Google Chrome


チェックボックスに名前がついていると思います。

<#チェックボックスを名前で指定#>
$elements = $driver.FindElements([OpenQA.Selenium.By]::Name("checkbox1"));
<#最初のチェックボックスの状態を取得#>
$elements[0].Selected;
<#次のチェックボックスの状態を取得#>
$elements[1].Selected;


※つづりが間違えていたので修正しました。
誤:$elemens
正:$elements

オフライン

#3 2017-10-07 08:05:24

mama
メンバー
登録日: 2017-10-06
投稿: 33

Re: チェックボックスの取得方法を教えてください。

お世話になります。

早急なお返事ありがとうございます。

Seleniumの記載をしていなく、失礼いたしました。

下記の部分ですが、
<#チェックボックスを名前で指定#>
$elements = $driver.FindElements([OpenQA.Selenium.By]::Name("checkbox1"));
↓↓↓
変更①
$elements = $driver.FindElements([OpenQA.Selenium.By]::hyoji("checkbox"));
↓↓↓
変更②
$elements = $driver.FindElements([OpenQA.Selenium.By]::Name("hyoji"));

変更①と変更②を試してみたのですが、結果が得られませんでした。

そこで、$elements.Selected;に何が入っているのかを確かめようと下記の記載を追加しました。

<#チェックボックスにチェックを入れる#>
$elements = $elements.FindElements([OpenQA.Selenium.By]::hyoji('checkbox'));
$elements.checked;
<# アセンブリの読み込み#>
Add-Type -Assembly System.Windows.Forms;
<# メッセージボックスの表示#>
[System.Windows.Forms.MessageBox]::Show($elements);

メッセージボックスにはOpenQA.Selenium.Remote.RemoteWebElementが表示されました。
何を意味しているかがわかりませんでした。

メッセージボックスにSelectedやcheckedの文字が表示されるかと期待しておりましたが違うようです。

理解ができていなくすみません。

何が間違っているのか教えていただけないでしょうか?

よろしくお願い申し上げます。

オフライン

#4 2017-10-07 12:18:08

admin
管理者
登録日: 2017-06-10
投稿: 87

Re: チェックボックスの取得方法を教えてください。

<input type="checkbox" name="hyoji" value="Y" >

サンプルのタグを書いていただいていたんですね。

この場合、
$elements = $driver.FindElements([OpenQA.Selenium.By]::Name("hyoji"));
<#最初のチェックボックスの状態を取得#>
$elements[0].Selected;
で取得出来ます。

※つづりが間違えていたので修正しました。
誤:$elemens
正:$elements

オフライン

#5 2017-10-10 08:27:19

mama
メンバー
登録日: 2017-10-06
投稿: 33

Re: チェックボックスの取得方法を教えてください。

ありがとうございます。

下記内容でチェックボックスにチェックが入っていない時はチェックをし
チェックが入っている時はチェックをしないようにすることができました。

$elements = $driver.FindElements([OpenQA.Selenium.By]::Name('hyoji'));
$elements[0].Selected;
if(!$elements[0].Selected){
$elements[0].Click();
}

大変助かりました。ありがとうございます。

まだまだ、わからないとこがございますので、恐れ入りますが
ご質問させていただけますと助かります。

この度は誠にありがとうございました。

オフライン

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ 0.006 秒でページを生成, 9 クエリーを実行 - 使用メモリー: 542.38 KiB (ピーク: 566.39 KiB) ]