Seleniumを使用して高度な検索ページの検索ボックスに情報を入力するPythonプログラムを作成しています。このウェブサイトはJavascriptを使用しており、ウェブサイトがロードされるたびに各検索ボックスのIDと名前が少し変わりますが、クラス名は一貫しています。クラス名は頻繁に再利用されるので、私の目標はfind_elements_by_class_name(classname)
を使用してから、そのリストにインデックスを付けることです。Selenium Python - スペースでクラス名で要素を探す
たとえば、1つのボックスにはクラス名x-form-text x-form-field x-form-num-field x-form-empty-field
がありますが、これを使用することはできません。なぜなら、セレンはそれを複合クラス名とみなしてエラーを投げるためです。 x-form-text
のようにその一部だけを使用すると、その要素を見つけることができません。私が望むのは、空白を許可する方法を見つけるか、それができない場合、空白のないテキストのセクションを含むクラス名を持つすべての要素を検索する方法を見つけることです(x-form-text
など)。
ご意見やご感想をいただければ幸いです。
編集:
私はこのコードを試してみました: quantminclass = 'x-form-text.x-form-field.x-form-num-field.x-form-empty-field' quantmin = '25' browser.find_elements_by_css_selector(quantminclass)[0].send_keys(quantmin)
をしかし、それは何かを見つけることができないことを意味し、リストのインデックスが範囲外だったというエラーが発生しました。私はその要素を調べましたが、それは間違いなくクラス名なので、どうやって進めるか分かりません。
[複合クラス名は許可されていませんエラーWebdriver](https://stackoverflow.com/questions/32043877/compound-class-names-not-permitted-error-webdriver) – Grasshopper