問題タブ [domcrawler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - フォーム テスト: コレクションを既存のフォームに送信する方法は?
フォームをテストするには、次の 2 つの方法を使用します。
使用することで$form = …->form();
次に、$form
配列の値を設定します (より正確には、これは\Symfony\Component\DomCrawler\Form
オブジェクトです)。
ドキュメントの完全な例:
POST
データを直接送信する方法:
前のコードは、フィールドが存在しない場合にエラーをスローするため、コレクションを管理する(Javascript によって作成されたフィールドに依存する) フォームでは機能しません。そういうわけで、私はこれを別の方法でも使用します。
ドキュメントの完全な例:
このソリューションは、Javascript によってフィールドが追加されたコレクションを管理するフォームをテストする唯一の方法です (上記のドキュメントへのリンクを参照)。ただし、この 2 番目のソリューションは、次の理由で使いにくいです。
- どのフィールドが存在するかをチェックしません
and
。Javascript で動的に作成されたフィールドに依存するコレクションの既存のフィールドを含むフォームを送信する必要がある場合、これは実用的ではありません。 _token
フォームを手動で追加する必要があります
私の質問
最初の方法の構文を使用して既存のフィールドを定義し、動的に作成された新しいフィールドを 2 番目の構文で追加することはできますか?
言い換えれば、私はこのようなものが欲しいです:
しかし、私はこのエラーが発生します:
到達不能フィールド「名前」
そして$form->get('name')->setData('Fabien');
、同じエラーを引き起こします。
フォームにはコレクションがないため、この例は完全ではありませんが、私の問題を示すには十分です。
既存のフォームにいくつかのフィールドを追加するときに、この検証を回避する方法を探しています。
symfony - Symfony Crawler で第 1 レベルの DOM 要素を取得する
Symfony Crawler コンポーネントを使用して、次のように html を解析しています。
値 1 2 3 4 は異なる場合があるか、空の div に存在しないことさえありますが、div には subDivs などが含まれる場合もあります。それらを処理するために最初のレベルの div を選択する段階で立ち往生しています。Xpath リクエストは、最初のレベルの div とサブディビジョンも返します
戻り値
subElements の処理を防ぐために、Xpath リクエストはどのように見えるべきですか?
UPD:
実際のトラブル DOM スキーム
この DOM ツリーは第 1 レベルの div によって処理され、<a>
タグの存在に応じていくつかのロジックが作成されます。
html - Symfony DOM Crawler を使用して HTML タグからテキスト値を抽出する最も効率的/最も良い方法は何ですか?
次の HTML コード スニペットがあるとします。
Symfony の Crawler を使用して文字列「大」を抽出する最良の方法を探しています。
ここで$crawler->html()
、正規表現検索を使用して適用できます。より良い解決策はありますか?または、正確にはどのようにしますか?
php - リンクを選択できません
各 .row の href をスクレイピングしようとしています。最終的には、リンクをクリックしてリンク先の DOM にもアクセスしたいのですが、Link オブジェクトも href 属性も取得できません。
a 属性にテキストが含まれていないという事実が問題かどうかはわかりませんが、それは私が使用しなければならない DOM です。
ヘルプ?
symfony - symfony 2 domCrawlerのすべての子要素を取得する方法
これはばかげた質問かもしれませんが、選択した html ページからすべての HTML ノードを持つオブジェクトを取得する必要があります。すべてのノード、特に開始タグを選択可能にする必要があります。TYPO3 TemplaVoilaのテンプレート エンジンを知っている人がいれば、これが一番合っていると思いますが、自分で再構築したいのですが、すべての開始タグをオブジェクトに取得する方法がわかりません。
誰かが詳細をプッシュできる場合、実際には、このように domCrawler でテストしていますが、少し混乱しています....
したがって、いくつかの調査の後、私は HTMLPageDom を unsing して、次のように使用しています。
これは多かれ少なかれ機能しますが、何かを誤解していると思います。$node->attr('href) にデータを追加するにはどうすればよいですか? と:
php - DOMCrawler: "a" タグと "area" タグ内のすべてのリンクを選択する方法
ページに存在するすべてのリンクのリストを取得したいと思います。これらのリンクの一部はarea
タグに含まれています。
だから私はすべてのリンクの完全なリストを取得するためにこれを行います:
タグとタグのfilter
両方にあるすべてのリンクをメソッドで直接選択する方法があるので、関数を使用する必要はありませんか?a
area
array_merge
php - 未定義のメソッド Symfony\Component\DomCrawler\Crawler::rewind() の呼び出し
問題なく動的フィールドを作成するためにYii2 DynamicForms 拡張機能を使用していましたが、今日 composer update を実行すると、次のエラーが表示されます。
Call to undefined method Symfony\Component\DomCrawler\Crawler::rewind()
エラーは次の行 201 を指しています/vendor/wbraganca/yii2-dynamicform/DynamicFormWidget.php
:
このメソッドは DomCrawler から削除されましたか?
これを解決するには?
jquery - css は子要素を選択しない
以下のようなhtmlがあるとしましょう:
This is a test
なしでテキストをフィルタリングするにはどうすればよいsmall
ですか?
編集: symfony Dom Crawler で使用しています。
だから私は持っていますが、要素filter(a. h3 search-result-title);
の内容は欲しくありません。small
symfony - DomCrawler フォーム内のすべての入力タグを選択
フォームフィールドをスクレイピングしている(または少なくとも試している)Webページがあります。Symfony2
これを行うために(and Goutte
) を使用しているので、$crawler
オブジェクトがあります。以下の html の例を次に示します。
ご覧のとおり、ネストされたコンテンツが多数あります。私の興味は、<input>
タグ内の<form></form>
タグだけです。
私は次のようなことを試みています:
しかし、すべての (そして唯一の) 入力タグを取得しているようには見えません。->count()
50〜100個の入力タグがある場合、数として8個しか得られません。
これを行うための正しいクエリを取得するのを手伝ってくれる人はいますか?
また、それを取得したら、特定の入力を削除することに興味があります。Dom にこれを可能にするメソッドはありCrawler
ますか? 私は多くの場所を見回しましたが、あまり見つけることができません。おそらく、逆フィルタリング システムを使用するとどうなるでしょうか。
助けてくれてありがとう!