世界的日曜WEBプログラマー日記 -2ページ目

世界的日曜WEBプログラマー日記

一年後に世界的なWEBサービスを運営するにはどうすればいいのか書いていく(予定)

selenium pythonで、タグ指定の時にfind_element_by_idなど色々な方法でタグを指定していたけど、最近xpathがすごい便利だと気づいた。

例えば次のようなDIVタグがあったとして、
< div class="backend_checkbox">
これを指定したいときは
"//div[@class='backend_checkbox']"

という風にして、find_element_by_xpathで指定することが出来る。
つまり、こんな感じになる。
 driver.find_element_by_xpath( "//div[@class='backend_checkbox']" )


ルールはじっくり見ていくとわかってくる。そんなに難しくない。
例えばLabelの例:
< label for="userpoints_usepoints" style="font-weight: bold;">
というLabelタグがあったとして、styleで検索をかけたいときは
"//label[@style='font-weight: bold;']"
となる。

タグ内の要素で検索することも可能。
具体的に例えば、
< label for="userpoints_usepoints" style="font-weight: bold;">
Use Points
</label>

があるとして、中の単語「Use Points」で引っ掛けたいとしたら、
"//label['Use']"
もしくは
"//label[contains(text(), 'Use')]"

とかで検索かけることが可能。
and演算子も使える。

"//label[@style='font-weight: bold;' and contains(text(), 'Use')]"


便利だ。

株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house
subprocess.callやos.Popenなどを使うと、標準出力が実行結果で出てしまいます。
ファイルディスクリプターを渡して、いちいちファイルオープンっていうのも大げさです。
なんとか、これをストリングに入れたい!という方必見。

次の方法で簡単にストリングで取得できます。

from subprocess import check_output
out = check_output(["ls", "-l"])



outにはストリングで結果が出力されます。以上です!!!


なお、Python2.6以下であれば、
 import subprocess
p = subprocess.Popen(["ls", "-la"], stdout=subprocess.PIPE)
out, err = p.communicate()



を使いましょう。

株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house