74631


### やりたいこと

Excelからデータを読み込みプルダウンリストからデータを選択したいです。  
下記のコードのように試してみましたが、エラーのようにエレメントが見つかりません。

なお、45行目で以下のようにテキストを指定すると成功します。

[code]

    select.select_by_visible_text("10時台")
    
[/code]

Excelから取得したデータをサイトに選択できるようにどのようにすれば、よろしいでしょうか。

わかる方いらっしゃいましたらご教示願います。  
お手数ですが、宜しくお願いいたします。

**エラー**

[code]

    DevTools listening on ws://127.0.0.1:58626/devtools/browser/599625ee-cfd1-4c94-9d7b-1185b0e823a8
    [11064:16504:0310/181419.128:ERROR:device_event_log_impl.cc(214)] [18:14:19.129] Bluetooth: bluetooth_adapter_winrt.cc:1072 Getting Default Adapter failed.
    Traceback (most recent call last):
      File "c:/Users/test/Documents/test/test.py", line 45, in <module>
        select.select_by_visible_text(df_a)
      File "C:\Users\test\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\support\select.py", line 140, in select_by_visible_text
        raise NoSuchElementException("Could not locate element with visible text: %s" % text)
    selenium.common.exceptions.NoSuchElementException: Message: Could not locate element with visible text: 0    10時台
    Name: time, dtype: object
    
[/code]

**コード**

[code]

    # coding:utf-8
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.support.select import Select
    from datetime import datetime as dt, date, timedelta
    import shutil
    import pandas as pd
    
    #headless background 
    option = Options()
    option.add_argument('--headless')
    
    #Getting Default Adapter failed error message
    option.add_experimental_option('excludeSwitches', ['enable-logging'])
    
    #filename
    filename = "test.xls"
    
    #各項目をxlsで読み込み
    df = pd.read_excel(filename,dtype=str)
    df_a = df["time"]
    
    # ブラウザを開く。 #options=option background 
    driver = webdriver.Chrome(executable_path="chromedriver.exe")
    
    URL= "https://test.php"
    # Googleの検索TOP画面を開く。
    driver.get(URL)
    
    #convenient_contact_time
    dropdown = driver.find_element_by_name("time")
    #セレクトタグの要素を指定してSelectクラスのインスタンスを作成
    
    select = Select(dropdown)
    #セレクトタグのオプションをテキストを指定して選択する
    select.select_by_visible_text(df_a)　
    
[/code]


CC BY-SA 4.0
2021-03-10T09:44:14.183
74568
2021-03-12T16:44:57.020
2021-03-11T06:44:45.673
18859
18859
question
python excel selenium
Excel to Selenium プルダウンリスト


こちらの方法で解決できました。

`df_a`だとpandasのデータ型Seriesになってしまう為、 `df_a[0]` にする必要があります。  
詳しくは下記のリンクを参考にしました。

pandasのインデックス参照で行・列を選択し取得[1](https://note.nkmk.me/python-pandas-index-row-
column/)

**コード:**

[code]

    import pandas as pd
    
    #convenient_contact_time
    dropdown = driver.find_element_by_name("time")
    #セレクトタグの要素を指定してSelectクラスのインスタンスを作成
    
    select = Select(dropdown)
    #セレクトタグのオプションをテキストを指定して選択する
    select.select_by_visible_text(df_a[0])　
    
[/code]


CC BY-SA 4.0
2021-03-12T16:44:57.020
74631
2021-03-12T16:44:57.020
18859
74568
answer