クエリがあります アプリケーションには、たくさんの HTML タグがあります。開発中、要件がないため、多くのタグに ID が与えられませんでした。現在、QA チームは QTP を使用してテスト ケースを自動化したいと考えています。ほとんどの場合、このツールはほとんどの HTML タグの ID を見つけられないため、認識しません。ここで、すべての HTML タグに ID を追加するよう求められます。これらのタグに id 属性を追加する効果があるかどうか知りたいです。プラスの影響も大歓迎
5 に答える
プラスまたはマイナスの影響があるとは思いません。HTML ページのサイズが少し大きくなるかもしれませんが、それほど大きくはないでしょう。
それでも、ページのすべての HTML タグに「id」属性を配置する必要がありますか? それらのいくつかだけで十分ではないでしょうか? フォーム フィールド、リンク、エラー メッセージのように。それはおそらくそれについてですか?
ただし、注意しなければならないことの 1 つは、「識別子」の場合と同様に、「id」は一意でなければならないということです。これは、それらを追加する前に、たとえば「その種類の要素の ID はそのように命名する必要がある」など、ある種の「ID ポリシー」を定義するのが良いことを意味します。
そして、あなたの次のプロジェクトのために: 開発者が開発しているときにそれらを追加してもらいます ;-)
(もちろん、ポリシーに従います)
今、私はそれについて考えています: プラスの効果は、HTML ドキュメントとやり取りする Javascript コードを書くのが簡単になることかもしれません-しかし、それは次のプロジェクトやこのプロジェクトの進化に当てはまります。開発者が JS コードを配置した時点で、すでに HTML に存在しています...
QTP関連の回答はまだないので。
QTP の GUI 認識はオブジェクト指向です。オブジェクトを識別するために、QTP はオブジェクトのプロパティの一意の組み合わせを必要とし、それらを可能な限り高速にチェックする必要があります。そのため、HTML ID が理想的です。
ここで特に重要なのは、他の一意の識別子を持たないオブジェクトの場合です。最も典型的な例 - html テーブル。それらのコンテンツは動的であり、ページ上の数は異なる場合があります。HTML ID を追加することで、認識メカニズムが正しいテーブルに直接アクセスできるようになります。
他の固有のプロパティを持つオブジェクトは、HTML ID がなくても十分に認識できます。たとえば、ページに単一の「送信」リンクがある場合、QTP は内部テキストによってそれを正常に認識します。
したがって、コンテキスト固有の答え: すべてのタグに ID を追加し始めないでください。自動化担当者に、問題のあるオブジェクトのリストを作成するよう依頼してください。そして、それらのオブジェクトに ID を追加します。
PS。また、自動化プログラミングのスキルにも依存します。記述的プログラミングと動的認識の方法があります。ID が提供されていなくても、適切なオブジェクトを取得できます。
As Albert said, QTP doesn't rely solely on elements' id
, in fact due to the fact that many web applications generate different id
s for each session, (as far as I remember) the id
property isn't part of the default description for most web test objects.
QTP is pretty good at recognizing most simple web controls and if you're facing problems it may be the case that a Web Extensibility project will help you bridge the gap between the semantics of your web application and the raw HTML it is created in. If a complex control is recognized by QTP as a WebElement
(which is actually the div
that contains the span
that drives the code) you will understandably have object recognition problems since there are many div
s on the page but probably many less complex controls.
あなたが副作用について話しているなら - いいえ。ID を追加しても問題は発生しません (もちろん余分なバイトを消費することは別として)。
本当に ID を追加する必要がある場合は、先に進んで追加してください。
http://www.w3.org/TR/html4/struct/links.html#anchors-with-id言います:
id 属性と name 属性は同じ名前空間を共有します。つまり、同じドキュメント内で同じ名前のアンカーを定義することはできません。両方の属性を使用して、A、APPLET、FORM、FRAME、IFRAME、IMG、および MAP 要素の要素の一意の識別子を指定することができます。両方の属性が 1 つの要素で使用される場合、それらの値は同一でなければなりません。