2017-12-04 8 views
0

最高のpython/seleniumからアイテムを購入する自動ボットを作成しようとしています。2つの検索方法driver.find_element_by_partial_link_text

私は商品ページにいて、私が購入したい商品を見つけるためにdriver.find_element_by_partial_link_text('Flight Pant')を使用しますが、商品の色を選択してdriver.find_element_by_partial_link_text('Black')を使用したいと思いますが、これで私はブラックであるフライトパンツの代わりにページの最初のブラックプロダクト。どのように私はこの目標を達成するだろう任意のアイデア?ここ

は、私はこれを達成しようとしていますサイトリンク、

http://www.supremenewyork.com/shop/all/pants

は注意です - 私はできないであろうように、製品が毎週の拠点に変更するように私は、このためのXPathを使用することができませんそれがサイトに掲載される前に製品のxpathを取得する。

アドバイスやガイダンスをいただければ幸いです。

答えて

1

XPathを使用できますが、操作はややこしいです。 XPathは次のようになります。ページの構造は毎週変更されません...私のXPathを説明するために仮定し

driver.find_element_by_xpath('//*[contains(text(), "Flight Pant")]/../following-sibling::p/a[contains(text(), "Black")]') 

//*[contains(text(), "Flight Pant")]

は、任意のノードを選択します「フライトパンツ」というテキストが含まれています。これらはすべて<a>タグです。 DOMがどのように見えるか

/../following-sibling::p

お知らせ:

<h1> 
    <a class="name-link" href="/shop/pants/dfkjdafkj">Flight Pant</a> 
</h1> 
<p> 
    <a class="name-link" href="/shop/pants/pvfcp0txzy">Black</a> 
</p> 

だから私たちは親に行くと<p>要素であるその兄弟を見つける必要があります。

/a[contains(text(), "Black")]

今すぐテキストブラックを持っている<a>タグにアクセスしてください。

のXPathへの任意の他の代替が実際にそこではありません理由によって要素を見つけた後、任意の所望の他の手段によって、要素(タグ名、クラス、リンクテキストなど)

+0

こんにちはMangohero1、 私はあなたが提供しているし、それを黒にショルダーバッグを見つけるために袋のページにそれをテストし、そのページ上の他の項目とき、それはしかし、ほとんどの項目のための素晴らしい作品のコードをテストしています常に動作するとは限りませんが、アクセサリーページと帽子ページで同じ問題が発生します。 これはなぜ起こっているのですか? アドバイスや指導は、コードのおかげで大いに充当されました。 – IAmAGodx

+0

いつでも:)それらのページの1つにリンクしてください。私は問題が何であるかを見ていきます。 – Mangohero1

+0

ありがとうございました:)これはリンクです。 http://www.supremenewyork.com/shop/すべて/バッグ http://www.supremenewyork.com/shop/all/accessories http://www.supremenewyork.com/shop/all/hats – IAmAGodx

0

を識別するための一意の方法はありませんのでですリンクテキスト「フライトパンツ」は、見つかった各結果を繰り返し、そのCSSの色属性を抽出します。その擬似コード。特定の色抽出Web要素を微調整する必要があります。

elements = driver.find_elements_by_partial_link_text("Flight Pants") 

for element in elements : 
    if(element.get_css_value('color').lower() == "black") 
    element.click() 
    break 
+0

と一致します。これで足りません。すべての要素はCSS値として黒色をしています。あなたは、リンクのテキストの色についてメソッドを呼び出しています...すべてが黒です:P – Mangohero1

関連する問題