2017-08-29 13 views
0

FBグループの保留中の投稿を削除するhrefを持つ要素をクリックしたいが、セレンは2番目の後にクラッシュする.click()。同じループを使用して、問題なくグループに投稿を追加できます。 "削除ボタン"リストは有効です。私が試したときに実際の場所が取得されるからです。System.out.println("Delete link: " + delete.get(i).getLocation()); 情報をビルドします:バージョン: '3.4.0'、改正: '不明'、時間: '不明' システム情報:スレッド "メイン" org.openqa.selenium.ElementNotInteractableExceptionで要素クリック時のSelenium、ElementNotInteractableException

while (true){ 
     if (isloadComplete(driver) && driver.getTitle().contains("My Group")){ 
     List<WebElement> add = driver.findElements(By.xpath("//a[@data-tooltip-content='approve']")); 
     List<WebElement> delete = driver.findElements(By.xpath("//a[@data-tooltip-content='delete']")); 
     List<WebElement> articles = driver.findElements(By.xpath("//div[@role='article']")); 

     System.out.println("Add links: " + add.size()); 
     System.out.println("Delete links: " + delete.size()); 
     System.out.println("Articles: " + articles.size()); 

     for(int i = 0; i< articles.size(); i++){ 
      System.out.println("Delete link: " + delete.get(i).getLocation()); 
      if (articles.get(i).getText().toLowerCase().contains(".com") | articles.get(i).getText().toLowerCase().contains("http")){ 

       //System.out.println("Article: " + articles.get(i).getText()); 

        delete.get(i).click(); 
        WebElement element = (new WebDriverWait(driver, 10)).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@data-testid='delete_post_confirm_button']"))); 
         element.click(); 

        }else{ 
        add.get(i).click(); 
        } 

       } 
       break; 
      } 

例外ホスト: 'rostyslav-System-Product-Name'、ip: '127.0.1.1'、os.name: 'Linux'、os.arch: 'amd64'、os.version: '4.10.0-32-generic' java.beres: '1.8.0_131' ドライバ情報:org.openqa.selenium.firefox.FirefoxDriver 機能[moz:profile =/tmp/rust_mozprofile.6twl2JYTeRMH、回転可能= false、タイムアウト= {暗黙= 0.0、pageLoad = 300000.0、script = 30000.0}、pageLoadStrategy = normal、platform = ANY、specificationLevel = 0.0、moz:accessibilityChecks = false、acce ptInsecureCerts = false、browserVersion = 55.0.2、platformVersion = 4.10.0-32- generic、moz:processID = 26485.0、browserName = firefox、javascriptEnabled = true、platformName = linux}] セッションID:562a62e4-3aaf-45e3-b7f2 sun.reflect.NativeConstructorAccessorImpl.newInstanceでsun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド)で-46f741f798a3 sun.reflect.DelegatingConstructorAccessorImpl.newInstanceで(NativeConstructorAccessorImpl.java:62) (DelegatingConstructorAccessorImpl.java:45) ジャワで.lang.reflect.Constructor.newInstance(Constructor.java:423) (org.openqa.selenium.remote.http.W3CHttpResponseCodec.java:150) at org.openqa.selenium.remote.http.W3CHttpResponseCodec .decode(W3CHttpResponseCodec.java:115)org.openqa.seleniumでorg.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164) でorg.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:45) で。 (RemoteWebElement.execute(RemoteWebElement.execute(RemoteWebElement。 java:272) at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:82) at Main $ HelloRunnable.run(Main.java:67) at Main.main(Main.java:36)

+0

上記のコードの行は、この例外の原因は? 'delete.get(i).click();'? –

+0

@SergeyKorolはい –

答えて

0

実際にclickが呼び出される前にelementToBeClickableを待つ必要があります。ジャストチューン(WebDriverWaitを経由して)次の行ビット、あなたが後にやったのと同じ方法:

delete.get(i).click(); 
+0

これは役に立ちませんでした。「確認」ボタンを探している次のWebDriverWaitでタイムアウトが発生しましたが、誰もいない、cuz .click()did not work。私はちょうどtry-catchでそれをスキップした後、私はページ上のすべての投稿を削除し、ページを更新し、削除されていない投稿が削除されます...私は30秒にタイムアウトを設定していましたが、まだ役に立たない) –

+0

@LittleFox最新のコードと正確な行でどこがエラーになっていますか? Stacktraceも高く評価されます。 –

関連する問題