Raspberry pi 2 B+ & Python3 & Selenium (Chromium)

raspberyy pi 2 B+ python3 selenium chromiumスクレイピングをしたくなった。

しかし、jessieなので stretchにする。

jessieのままやってもUbuntuchromium-chromedriver (Webdriver) のバージョンとchromiumが合わない(この時点で四苦八苦)

stretch にはchromedriverパッケージが追加されている

sudo apt-get update sudo apt-get upgrade #最新にしておく

sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list.d/raspi.list

sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade sudo reboot



・・・できない。





sudo apt-get upgrade
.........
dpkg: 警告: サブプロセス 古い pre-removal スクリプト はエラー終了ステータス 127 を返しました
dpkg: 代わりに新規パッケージからスクリプトを実行してみます ...
/var/lib/dpkg/tmp.ci/prerm: 6: /var/lib/dpkg/tmp.ci/prerm: pyclean: not found
dpkg: アーカイブ /var/cache/apt/archives/python-openssl_0.14-1_all.deb の処理中にエラーが発生しました (--unpack):
サブプロセス 新しい pre-removal スクリプト はエラー終了ステータス 127 を返しました
/var/lib/dpkg/info/python-openssl.postinst: 6: /var/lib/dpkg/info/python-openssl.postinst: pycompile: not found
dpkg: error while cleaning up:
サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 127 を返しました
処理中にエラーが発生しました:
/var/cache/apt/archives/python-openssl_0.14-1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
とのこと



今は、
sudo dpkg --audit
で、出てきた 展開されたけど設定されていないパッケージを
sudo dpkg --configure [パッケージ名]
でなんとかしている。 さらに上のコマンドで、"エラー終了ステータス 127"を返されたら、出てきたパス( 多分 /var/libdpkg/info/[パッケージ].postinst )
sudo rm -r [パス] で もう一回 configure すれば解決した

ListViewの項目選択に応じたDialogを表示

自分用メモ
ゴリゴリ・ゴリラ押しソースコード
スマートな書き方ができなかったので、どなたか教えてください。
マジでコード書くより調べる時間が長い

///// Main.java
DialogFragment dialogFragment = new CustomDialog(); /////

final String[] strings = {"abc","cde","edf"};
final ArrayAdapter<String> adapter = new ArrayAdapter<>(mContext, android.R.layout.simple_list_item_1, strings);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Bundle arg = new Bundle(); //////////// Bundle is used
    switch (position){
       case 0:
           arg.putInt("num",0);
           dialogFragment.setArguments(arg);  ////////// setArguments で Bundleに入れた値を渡す。
           break;
       case 1:
           arg.putInt("num",1);
           dialogFragment.setArguments(arg); 
           break;
      case 2:
           arg.putInt("num",2);
           dialogFragment.setArguments(arg); 
           break;
   }

  dialogFragment.show(getFragmentManager(), "test");
}
///// CustomDialog
public class CustomDialog extends DialogFragment {
                                 
                      ////省略

public Dialog onCreateDialog(Bundle savedInstanceState) {

       int number = 0;

        try {
            number = getArguments().getInt("num");     ///setArgumentsしたのを受け取るやつらしい そりゃそうだね。
        } catch (NullPointerException ex) {
            Log.e("JJI", ex.toString());
        }

        if (number == 1) {

            return new AlertDialog.Builder(getActivity())
                    .setTitle("UNKO")
                    .setMessage("UNKO")
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            mListener.onDialogPositiveClick(D_Fragment.this);
                        }
                    })
                    .setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    })
                    .create();
                ////////////// 省略 if(number == 2 )とか if(number == 3)もあるよ
    }

こんな感じ?

最初の記事

テスト投稿も兼ねて書いてみようと思います。

このblogは主に日常生活や、学んだことについて書きます。 できるだけ積極的な投稿を心掛けていきたいね (恐らくこの気持ちは最初だけ...) 今日は特になにもなかったのでこれで終わり。