c#
  • google-chrome
  • selenium
  • 2017-06-16 16 views 0 likes 
    0

    要素イム探ししようとしている:60秒前にそのちょうど倍...と、ページのロードの仕方 See the element hereC#セレンがWebDriverWaitを持つ要素を見つけることができない、私はそれを見てクリックすることができ、手動で

     WebDriverWait wait = new WebDriverWait(browser, TimeSpan.FromSeconds(60)); 
         wait.Until(ExpectedConditions.ElementExists(By.XPath("//use[@xlink:href='#core_mail']"))); 
    
         File.WriteAllText("html.txt", browser.PageSource); 
    

    答えて

    1

    svgは、デフォルト名前空間を持っています。

    //*[local-name() = 'use' and @xlink:href='#core_mail'] 
    

    もののは、公平であるために、あなたは深くマークアップに飛び込む必要はありません、あなたの「電子メール」:

    //svg:use[@xlink:href='#core_mail'] 
    

    それともlocal-name()でそれを無視する:あなたはそれを考慮する必要がありボタンはツリーのはるかに高いです - スクリーンショットで部分的に表示される最初の親要素を見てください - それはおそらく代わりに探したい要素です。

    +0

    ありがとうございます。あなたは正しいですが、私は "// pos-icon-item [@ icon = 'core_mail']"で試してみました。だから、そう深くはないというあなたの提案は実際には有効です。私はそれが私の前にそれをさせるdoenst以来2分で答えをマークします –

    +0

    ところで、何か私はそれに関連する場合は知っていない奇妙なが、私はドライバオブジェクトのPageSourceプロパティをファイルに保存するとき、私は私はJavaScriptの後にその魔法をしたことを意味して、そこにフルページのソースが表示されない印象を取得します。たとえば、私のイメージでは、私は "mail.com Update"というメッセージが表示されているのを見ることができます。私はソースでそれを見ることができません –

    +1

    @JoaoVitorが助けてうれしい! 2つの一般的なことが起こっている可能性があります:ページソースを取得した後に実行されるjがいくつかあります。または、その部分がiframe内にあります。ページソースはiframeページソースを再帰的に取得しません。 – alecxe

    関連する問題