1

xpath に一致する要素のリストを作成し、それぞれを連続してクリックしたいと考えています。ただし、get_attribute("href")コマンドを使用すると、「ユニコード」オブジェクトに属性「クリック」エラーがありません。これは、href が文字列であるためです。get_attribute を使用せず、単に次のコマンドを使用する場合:

driver.find_elements_by_xpath(".//div/div/div[3]/table//tr[12]/td/table//tr/td/a")

要素でいっぱいのリストを取得します。リストの最初のリンクを正常にクリックできます。ただし、2番目をクリックすると、次のエラーが表示されます。 「要素がキャッシュに見つかりません-ページが検索されてから変更された可能性が あります」反復しようとしているページリンクが次の方法で生成された理由を想像しますjava への検索クエリ (これは href リンクの 1 つです:

javascript:__doPostBack('ctl00$Content$listJobsByAll1$GridView2','Page$3') )

もう 1 つ関連情報があります。この xpath の場所には、href とテキストの 2 つの属性しかありません。

したがって、Java Web サイトと 2 つの属性のみを扱っていることを考えると、一連のクリック可能な静的リンクを取得するために使用できる webdriver コマンドを誰かが教えてくれることを願っています。特定の答えを超えて、私がこれを自分でどのように理解できたかについてのアドバイスは役に立ちます.

4

1 に答える 1

2

のリンクをクリックするとselenium、現在のページが変更されます。移動先のページに次の要素がありません。

リンクを取得するには、次を使用します。

'.//tag/@href'

あなたが試すことができます:

for elem in elems:
    elem.click()
    print browser.current_url
    browser.back()
于 2013-01-07T12:45:36.987 に答える