2016-10-10 10 views
0

このサイトを初めて見ている人は、 http://autotask.netの要素を選択/クリックしようとしています。私は、次の方法を使用して要素を見つけることを試みています受信selenium.common.exceptions.NoSuchElementException:メッセージ:要素メッセージを見つけることができません

driver.find_element_by_css_selector( '#HREF_btnPrint> IMG:n番目の子(1)') driver.find_element_by_xpath( 'browser.find_element_by_xpath('/HTML /ボディ/フォームを[1]/DIV [2]/DIV [1]/UL /李[2]// IMG ')

...しかし、それは私のタイトルで例外を提供します。

私は見つけることができますログオンページ(つまり「ユーザー名」の「パスワード」フィールド)上の要素は正常ですが、一度ログインすると、セレンはページ上の要素を見つけることができません。

私は、今週は、私はJavaについて何も知らない。詳細が必要な場合は、私に教えてください - ありがとう。

答えて

0

私はPythonの構文についてはわかりませんので、代わりにJavaを使用します。 2つのケースが考えられます。まず、ドライバがページがロードされている間にDOM構造を調べます。もう1つは、WebドライバがDOMのルートを指していないことです。私は通常、ページの読み込みが完了するまで待機し、いくつかの要素を探す前にデフォルトの内容に切り替える待機メソッドを持っています。

まず、WebDriver、Element id、Element名の両方をコンストラクタを介して渡します。次に、私はwaitUntilReady()特定のタイムアウト内の要素の存在をチェックするロジックを実装しています。

public void waitUntilReady() { 
      WebDriverWait waiter = new WebDriverWait(getWebDriver(), 30); 
      waiter.withMessage("\"" + getElementName() + "\" is not ready in 30 seconds") 
        .until(new Predicate<WebDriver>() { 
         @Override 
         public boolean apply(WebDriver input) { 
          /* isReady() returns true if all elements 
          * that you need to test are available. 
          * Note that if you have javascript, you 
          * should have some hidden field to tell 
          * you that the whole page has loaded. */ 
          return isReady(); 
         } 
        }); 
     } 

だけでなく、スイッチの前に、その後driver.findElementById( "コンテナ")を使用し、それが動作しない場合、あなたは<body id="container">を持つことができる要素

WebElement getWebElement() { 
    WebElement webElement; 
    try { 
     getWebDriver().switchTo().defaultContent(); 
     webElement = getWebDriver().findElement(By.id(elementId)); 
    } catch (NoSuchElementException ex) { 
     getLogger().log(Level.SEVERE, "Element id '" + elementId + "' does not exist"); 
     throw ex; 
    } 
    return webElement; 
} 

を見つけるコンテンツをデフォルトにする。findElementById( "あなたのターゲット要素")

+0

私はJavaに精通していません。私はであなたが言っていることを得て、次に要素byidメソッドを探します。私は要素内の要素を見つけるためにPython構文が必要です。 – MrGlass

関連する問題