問題タブ [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.

0 投票する
1 に答える
1528 参照

symfony - フォーム テスト: コレクションを既存のフォームに送信する方法は?

フォームをテストするには、次の 2 つの方法を使用します。

使用することで$form = …->form();

次に、$form配列の値を設定します (より正確には、これは\Symfony\Component\DomCrawler\Formオブジェクトです)。

ドキュメントの完全な例:

POSTデータを直接送信する方法:

前のコードは、フィールドが存在しない場合にエラーをスローするため、コレクションを管理する(Javascript によって作成されたフィールドに依存する) フォームでは機能しません。そういうわけで、私はこれを別の方法でも使用します。

ドキュメントの完全な例:

このソリューションは、Javascript によってフィールドが追加されたコレクションを管理するフォームをテストする唯一の方法です (上記のドキュメントへのリンクを参照)。ただし、この 2 番目のソリューションは、次の理由で使いにくいです。

  • どのフィールドが存在するかをチェックしませんand。Javascript で動的に作成されたフィールドに依存するコレクションの既存のフィールドを含むフォームを送信する必要がある場合、これは実用的ではありません。
  • _tokenフォームを手動で追加する必要があります

私の質問

最初の方法の構文を使用して既存のフィールドを定義し、動的に作成された新しいフィールドを 2 番目の構文で追加することはできますか?

言い換えれば、私はこのようなものが欲しいです:

しかし、私はこのエラーが発生します:

到達不能フィールド「名前」

そして$form->get('name')->setData('Fabien');、同じエラーを引き起こします。

フォームにはコレクションがないため、この例は完全ではありませんが、私の問題を示すには十分です。

既存のフォームにいくつかのフィールドを追加するときに、この検証を回避する方法を探しています。

0 投票する
2 に答える
1358 参照

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>タグの存在に応じていくつかのロジックが作成されます。

0 投票する
3 に答える
780 参照

html - Symfony DOM Crawler を使用して HTML タグからテキスト値を抽出する最も効率的/最も良い方法は何ですか?

次の HTML コード スニペットがあるとします。

Symfony の Crawler を使用して文字列「大」を抽出する最良の方法を探しています。

ここで$crawler->html()、正規表現検索を使用して適用できます。より良い解決策はありますか?または、正確にはどのようにしますか?

0 投票する
1 に答える
502 参照

php - リンクを選択できません

各 .row の href をスクレイピングしようとしています。最終的には、リンクをクリックしてリンク先の DOM にもアクセスしたいのですが、Link オブジェクトも href 属性も取得できません。

a 属性にテキストが含まれていないという事実が問題かどうかはわかりませんが、それは私が使用しなければならない DOM です。

ヘルプ?

0 投票する
2 に答える
2990 参照

symfony - symfony 2 domCrawlerのすべての子要素を取得する方法

これはばかげた質問かもしれませんが、選択した html ページからすべての HTML ノードを持つオブジェクトを取得する必要があります。すべてのノード、特に開始タグを選択可能にする必要があります。TYPO3 TemplaVoilaのテンプレート エンジンを知っている人がいれば、これが一番合っていると思いますが、自分で再構築したいのですが、すべての開始タグをオブジェクトに取得する方法がわかりません。

誰かが詳細をプッシュできる場合、実際には、このように domCrawler でテストしていますが、少し混乱しています....

したがって、いくつかの調査の後、私は HTMLPageDom を unsing して、次のように使用しています。

これは多かれ少なかれ機能しますが、何かを誤解していると思います。$node->attr('href) にデータを追加するにはどうすればよいですか? と:

0 投票する
0 に答える
498 参照

php - DOMCrawler: "a" タグと "area" タグ内のすべてのリンクを選択する方法

ページに存在するすべてのリンクのリストを取得したいと思います。これらのリンクの一部はareaタグに含まれています。

だから私はすべてのリンクの完全なリストを取得するためにこれを行います:

タグとタグのfilter両方にあるすべてのリンクをメソッドで直接選択する方法があるので、関数を使用する必要はありませんか?aareaarray_merge

0 投票する
1 に答える
5317 参照

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 から削除されましたか?
これを解決するには?

0 投票する
5 に答える
899 参照

jquery - css は子要素を選択しない

以下のようなhtmlがあるとしましょう:

This is a test なしでテキストをフィルタリングするにはどうすればよいsmallですか?

編集: symfony Dom Crawler で使用しています。

だから私は持っていますが、要素filter(a. h3 search-result-title);の内容は欲しくありません。small

0 投票する
0 に答える
760 参照

symfony - DomCrawler フォーム内のすべての入力タグを選択

フォームフィールドをスクレイピングしている(または少なくとも試している)Webページがあります。Symfony2これを行うために(and Goutte) を使用しているので、$crawlerオブジェクトがあります。以下の html の例を次に示します。

ご覧のとおり、ネストされたコンテンツが多数あります。私の興味は、<input>タグ内の<form></form>タグだけです。

私は次のようなことを試みています:

しかし、すべての (そして唯一の) 入力タグを取得しているようには見えません。->count()50〜100個の入力タグがある場合、数として8個しか得られません。

これを行うための正しいクエリを取得するのを手伝ってくれる人はいますか?


また、それを取得したら、特定の入力を削除することに興味があります。Dom にこれを可能にするメソッドはありCrawlerますか? 私は多くの場所を見回しましたが、あまり見つけることができません。おそらく、逆フィルタリング システムを使用するとどうなるでしょうか。

助けてくれてありがとう!