seleniumのxpathと変数の組み合わせ

kensuke-iizuka 14views 更新:2017年9月26日

seleniumのテストの最中に取得したIDなどをそのままxPathに組み込みたいといった実装をするときに

少しだけ気をつけることがあります。

var user_id = 11455;

var bad_xpath = "//*[@id=" + user_id + "]/form/div[2]/span/input";

driver.findElement(town_By.xpath(bad_xpath)).click();

//NoSuchElementError: no such element: Unable to locate element

単純に変数と文字列をつなぐだけなら、これで良いはずなのになぜ要素が見つからないとなるのでしょうか?

一方で、

var correct_xpath = "//*[@id='" + user_id + "']/form/div[2]/span/input";

とすると上手く要素を見つけることができます。

単純に”(シングルクォーテーション)が入っているかどうかの違いです。

bad_xpath -> //*[@id=11455]/form/div[2]/span/input

correct_xpath -> //*[@id='11455']/form/div[2]/span/input

これくらいなら、許してくれてもいいのに

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません