2016-09-14 19 views
0

Amazonカートの画面から削除ボタンをクリックするには、C#で適切なXPATH構文を作成しようとしています。カートには1つのアイテムまたは複数のアイテムが存在する可能性がありますので、削除ボタンをループして探しています。私は削除ボタンを見つけることができませんでしたが、削除という言葉が含まれています。私は最終的に大丈夫、私は画面上のすべてのボタンを見つけることができたと言った。私はそれらをループし、各リンクのテキストを使用して、クリックする必要のあるものを見つけます。その唯一の問題は、実際にページ上に20種類のアイテム(( "// input [@ type = 'submit']"))が見つかりましたが、Textフィールドはすべて空です。私はこのXPATH構文が新しく、本当に問題を引き起こしています。どんな助けもありがとう。 ChromeからC#セレンのループスルークラスの入力ボタンXPATH

var links = driver.FindElements(By.XPath("//table[contains(@name, 'ReportViewer_fixedTable')]")); 
var links = driver.FindElements(By.XPath("//css=a[name^='submit.delete']")); 
var links = driver.FindElement(By.CssSelector("table[id*='ReportViewer_fixedTable']")); 
var links = driver.FindElements(By.XPath("//button[@type='submit'][text()='Delete']")); WORKED DIDNT FIND ANYTHING 
var links = driver.FindElements(By.XPath("//input[@type='submit'][contains(text(),'Delete')]")); //WOREKED DIDNT FIND ANYTHING 
var links = driver.FindElements(By.XPath("//input[@type='submit']")); 
var links = driver.FindElements(By.XPath("//div[@class='a-row sc-action-links']/span[@class='a-declarative']")); 

検査: enter image description here

そして、どのような私の出力がちょうど通過時にIループのように見えるここで

は、私は適切な情報のスクリーンショットと一緒にしようとした多くのものの一部です// input [@ type = 'submit']を検索します。テキストが空であることがわかります。それはそれらすべてのためのその方法です。コンテキストノードのxpath text()一致するテキストノードの子で

enter image description here

+0

特定の削除ボタンをクリックするか、すべてのボタン値を取得しますか? –

+0

//input[starts-with(@name,"submit.delete ")] – derloopkat

答えて

1

inputは欲求テキストDeleteと子要素を持っていませんでした。

input要素のvalue属性で実際にDeleteテキスト存在、あなたが@value = 'Delete'としてvalue属性を持つDeleteテキストと一致するようにしてください。

ので、以下のようにしてみてくださいXpathを使用して、すべて削除ボタンを見つけるために: -

var deleteButtons = driver.FindElements(By.XPath("//input[@type='submit'][@value='Delete']")); 

または、以下のようにCssSelectorを使用して: -

var deleteButtons = driver.FindElements(By.CssSelector("input[type='submit'][value='Delete']")); 

UPDATE: 将来的にはこれが必要かもしれ誰のために。これは完成品です:

var deleteButtons = driver.FindElements(By.CssSelector("input[type='submit'][value='Delete']")); 

     foreach (var link in deleteButtons) 
     { 
      link.Click(); 
     } 
+1

ありがとうございました。これは魅力のように働いた。 var deleteButtons = driver.FindElements(By.CssSelector( "input [type = 'submit'] [value = 'Delete']")); – Roro

関連する問題