2016-07-16 14 views
0

Facebookの投稿プロセスを自動化することに本当に問題があります。 私のスクリプトは、ニュースフィード内のテキストエリアを正しく追跡できません。Selenium WebDriver - Facebook投稿の問題

私はSelenium IDEで提案されたものでも、さまざまなセレクタを試しましたが、無駄がありませんでした。

//xpath for status update box 
    WebElement statusUpdateBox = driver.findElement(By.xpath(DemoTestData.XPATH_STATUSUPDATE_BTN)); 
    //click the status update box 
    driver.findElement((By.xpath(DemoTestData.XPATH_STATUSUPDATE_BTN))).click(); 
    //input data in the status update box 
    statusUpdateBox.sendKeys(DemoTestData.DATA_STATUSUPDATE_MSG); 
    WebElement postButton = driver.findElement(By.xpath(DemoTestData.XPATH_STATUSUPDATE_BTN)); 
    //click 'post' button 
    postButton.click(); 

たxPathおそらく何をしないのです

DemoTestData.XPATH_STATUSUPDATE_BTN = "html/body/div[1]/div[2]/div[1]/div/div[2]/div[2]/div[2]/div/div[3]/div/div/div[2]/div/div/div/form/div[1]/div/div[2]/textarea"; 

用:

ここに私のコードの抜粋ですか? ありがとうございました。 :D

答えて

0

これは私が見つけたものです。 FBページでxpathをチェックしたところ、結果は返されませんでした。 (非常に便利なツールは、Firefoxの無料の単純なfirepathと呼ばれるプラグインですが、そうでない場合は、必ず入手してください!)

xpathに "textarea"が付いているとは思われません。正しい?

テストを実行すると、テキストが入力されますか?そうでない場合は、(最初​​の)問題はおそらくテキストボックスのfindElementです。

私がもう少し見てみると、CSSは実際には非常に単純な「テキストエリア」であることがわかりました。したがって、テキスト領域を返すdriver.FindElement(By.CssSelector( "textarea")) を使用する場合は、

ボタンにはちょっとした奇妙なCSSがありますが、私はこれもかなり新しくなっていますが、その中のテキストでボタンを見つけることができます。私の言葉では "Plaatsen"と書いてあります。 Firepathをチェックイン!

driver.FindElement(By.XPath( "// * [text()[contains(、、 'Plaatsen')]]))はボタンを返す必要があります。

私はそれが助けてくれることを願っています!そして、私はあなたがこの答えが有用であることを願っています。それについてのヒントがあれば幸いです。

乾杯!

+0

ありがとうございます。私はfirepathを使って、テストスクリプトを開発するときにxpathディレクトリをチェックし、使用しました。 –

+0

しかし、私は以下の行を試しましたが、WebDriverは入力を上記テキストエリアに書き込むことができません: –

+0

driver.findElement(By.cssSelector( "#placeholder-7rfdf"))。sendKeys(DemoTestData.DATA_STATUSUPDATE_MSG ); –