

[PMDAのサイト](https://www.pmda.go.jp/) では
[検索フォーム](https://www.pmda.go.jp/PmdaSearch/kikiSearch/)
と検索確認のURLが同じなのですが検索確認のhtmlを解析したいです。  
下記のコードでは検索確認のhtmlの解析ができず、検索フォームのhtmlを検出してしまうため、  
`elem_serch_btn1`のクリックに失敗します。  
検索確認のhtmlを解析するにはどうしたらようでしょうか・・？  
お教示お願いいたします。

[code]

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from urllib import request
    from bs4 import BeautifulSoup
    import requests
    from urllib.parse import urljoin
    import openpyxl as op
    import datetime
    import time
    
    driver = webdriver.Chrome('C:\/chromedriver.exe')
    driver.get("https://www.pmda.go.jp/PmdaSearch/kikiSearch/")
    
    
    elem_search_word = driver.find_element_by_id("txtName")
    elem_search_word.send_keys("血液照射装置")
    elem_search_btn = driver.find_element_by_name('btnA')
    elem_search_btn.click()
    
    cur_url = driver.current_url
    html = request.urlopen(cur_url)
    soup = BeautifulSoup(html,'html.parser')
    print(soup)
    
    time.sleep(5)
    
    elem_serch_btn1 = driver.find_element_by_link_text('//*[@id="ResultList"]/tbody/tr[2]/td[1]/div/a')
    elem_serch_btn1.click()
    
[/code]


CC BY-SA 4.0
2018-07-19T16:56:19.743
46742
2020-02-12T03:02:25.240
2019-04-01T04:08:04.133
3060
29380
question
python html python3 selenium selenium-webdriver
同じurlで異なる内容のページのhtml要素の取得方法がわかりません。


Webサーバーには、サーバーとブラウザ間で固有の情報を共有するためのセッションという仕組みがあり、同じURLにアクセスした場合でも、ブラウザが異れば、異なるページが表示される場合があります。

そのため、最初にページにアクセスしたブラウザを使ってページの情報を取得する必要があります。

ご質問のコードには、`driver`を使って最初にページにアクセスしていますが、途中から別ブラウザとなる`request.urlopen`を使ってURLにアクセスしているため、お望みの情報が取得できないのだと思います。

そこで、以下のように、`request.urlopen`を使わない方式を試されると良いと思います。

[code]

    html = driver.page_source
    soup = BeautifulSoup(html,'html.parser')
    print(soup)
    
[/code]


CC BY-SA 4.0
2018-07-19T21:33:10.257
46744
2018-07-19T21:33:10.257
46742
answer