Rumah  >  Soal Jawab  >  teks badan

python selenium mendapat kod pengesahan imej

Saya mahu cache kod pengesahan imej secara setempat, dan kemudian biarkan pengguna melihat imej melalui perkhidmatan web dan taip kod secara manual untuk log masuk.
Memandangkan operasi rasmi adalah tanpa antara muka, tangkapan skrin selenium tidak boleh digunakan.
Selain tangkapan skrin selenium dan kaedah klik kanan, adakah cara lain?

Pada masa ini saya berfikir untuk menggunakan js untuk meminta semula kod pengesahan ke dalam kanvas dan kemudian keDataURL ke dalam kod png base64 dan mengeluarkannya kepada Dom dan kemudian menggunakan selenium untuk mendapatkannya.
Ujian kod berikut menggunakan kod pengesahan pintu masuk log masuk pusat membeli-belah mudah alih.

$('body').append('<canvas id="CAVASIMG"></canvas>');
var img=new Image();
img.src="http://shop.10086.cn/i/authImg";
var d=document.getElementById("CAVASIMG");
var cxt=d.getContext("2d");
img.onload = function(){
    d.width = img.width;d.height = img.height;
    cxt.drawImage(img,0,0);
    console.log(d.toDataURL('png'));
};

Jika URL yang meminta kod pengesahan adalah daripada domain yang berbeza daripada URL log masuk, ralat merentas domain akan dilaporkan.
Anda juga perlu menguji sama ada imej kod pengesahan yang diperoleh dengan cara ini masih wujud dalam tempoh sah sesi semasa.
Bagaimana untuk menyelesaikan masalah merentas domain di atas?

PHP中文网PHP中文网2685 hari yang lalu1562

membalas semua(4)saya akan balas

  • 欧阳克

    欧阳克2017-06-12 09:23:28

    Anda perlu menangkap paket terlebih dahulu untuk melihat laluan permintaan imej, dan kemudian gunakan permintaan untuk memuat turun imej

    balas
    0
  • 漂亮男人

    漂亮男人2017-06-12 09:23:28

    Cara di atas adalah kaedah, anda juga boleh menggunakan selenium + PhantomJS

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-12 09:23:28

    Kod pengesahan gambar dan kuki semasa membaca gambar disepadukan

    Hanya pastikan kod pengesahan yang anda jawab adalah konsisten dengan kuki.

    balas
    0
  • 高洛峰

    高洛峰2017-06-12 09:23:28

    Akhirnya saya menggunakan kaedah js

    var img=document.getElementById('IMGCODEID');
    var d=document.createElement('CANVAS');
    var cxt=d.getContext('2d');
    d.width=img.width;d.height=img.height;
    cxt.drawImage(img,0,0);
    img.src=d.toDataURL('png');

    balas
    0
  • Batalbalas