Vb.Net Webbrowser Sorunu
-
Merhaba müridler, visual studio 2010 var bende ve herhangi bir web sitesinden id, class bilgilerini kullanarak veri çekmek istiyorum. Veri çekmek için kodları biliyorum. Fakat klasik webbrowser çok eski ve çalışmıyor çoğu şey. Chromium eklemek istedim ancak beceremedim. Webkit diye bi şey duydum onu da ekleyemedim. Araştırma yapınca chromium için nuget manager ile kolayca ekleyen vardı ama benim vs 2010 versiyonunda onu da kullanamadım. Bana bir yol gösterin lütfen kafayı taktım bir türlü aşamıyorum bu sorunu.
Ayrıca web browserı vb.net diliyle kullanıcam c.net ile ilgili dökümanlar gördüm ama kurulum sonrası vb.net örnek kodlar da olursa tadından yenmez ancak öncelikle webbrowser eklentisini halletmeliyim.
-
O kadar eski bir sürüm için destek kalmamış. VS'nin güncel sürümleri ile https://cefsharp.github.io/ adresindeki nuget'i kullanabilirsiniz. Eski webbrowser kadar kolay kullanıldığını sanmıyorum.
-
WebBrowser çok eski hocam. Onun yerine WebView 2 kullan;
https://learn.microsoft.com/en-us/microsoft-edge/webview2/get-started/winforms
-
Arkadaşların dediğin gibi hocam vs 2010 çok çok eskide kaldı ve desteğide bitti. .Netframework 4.0 olması lazım ki, onunda uzun süredir desteği yok. Refere edecek güncel kütüphane bulman zor.
VS 2022 community versiyonuna geç diyeceğimde fakat 2010 dan sonra çok farklı gelecektir ama herşeyin hazır kütüphanesi var. (Chromium, selenium...) gittikçe pyhton mantığına dönecek gibi.
Bu durumda ben olsam ve başka seçeneğimde yoksa; sayfadan veri çekme işini hızlıca python(beautifulsoup) yaptırıp veriyi xml, json, sqlite... gibi birşeye yazdırır ve vb.net veriyi oradan almasını sağlardım.
Python şart değil NodeJS de olur ama python bilmiyorsan ufak bir aramayla istediğin şeyi hazır yapan py kodlarını hazırda bulursun ve vb.net diline/mantığına benzer.
-
YeniHarman bunu yazdı
O kadar eski bir sürüm için destek kalmamış. VS'nin güncel sürümleri ile https://cefsharp.github.io/ adresindeki nuget'i kullanabilirsiniz. Eski webbrowser kadar kolay kullanıldığını sanmıyorum.
yeniharman'ın verdiği gibi cefsharp yapacağın işler için yeterli gelicektir.
-
çok teşekkürler. tavsiyelerinizi tek tek deneyeceğim. sanırım vs 2022 kullansam iyi olacak artık hazır alacağım şeyleri tek tek aramak daha büyük sıkıntı. webview olayını da deniyeceğim. cefsharp yüklemeyi denedim ama becerememiştim. bu işlerde profesyonel değilim kodlamayı da kitaptan kurstan öğrenmedim o yüzden diğer dillerden yürümem mümkün değil maalsef. Yazdıklarınızdan işe yarar bi şey yaparım illaki :)
-
biri bunu yazdı
WebBrowser çok eski hocam. Onun yerine WebView 2 kullan;
https://learn.microsoft.com/en-us/microsoft-edge/webview2/get-started/winforms
işimi gördü gerçekten teşekkürler. vs 2019 yükledim öncelikle. sonra webview ekledim. web siteler çok rahat kullanılıyor. eğer webbrowserda kullandığım kodlar bunda da işlerse süper olacak. işe yaramazsa yine danışırım :)
-
biri bunu yazdı
WebBrowser çok eski hocam. Onun yerine WebView 2 kullan;
https://learn.microsoft.com/en-us/microsoft-edge/webview2/get-started/winforms
web view2 kullanıyorum artık ancak ;
WebView21. ExecuteScriptAsync() fonksiyonu ile herhangi bir siteye veri girmeye yada veri çekmeye çalışıyorum olmuyor. Aslında oldu ama sadece sayı girebildim. textbox içindekini yazdıramadım.
mesela
WebView21.ExecuteScriptAsync ( "document.getElementById('mod-login-username' ) .value = 'xxx'" ) WebView21.ExecuteScriptAsync ( "document.getElementById('mod-login) -password').value = 'xxx'" ) WebView21.ExecuteScriptAsync ( "document.getElementsByClassName('btn btn-primary btn-block btn-large login-button')[0].click(); " )
burda xxx yazan yere sayı yazınca sıkıntı yok ama ben formdaki textbox içeriğini yazdırmak isteyince tırnak içinde olmadan textbox1.text diye yazınca olmuyor.
WebView21.ExecuteScriptAsync ( "document.getElementById('mod-login-username' ) .value = textbox1.text " )
yukardaki gibi yapınca işlemiyor. bu fonksiyonu düzgün kullanmam için örnek kodlama nasıl olmalı? yabancı kaynaklardan da araştırdım ama bulamadım. -
yukarı fırlat!
-
WebView21.ExecuteScriptAsync ( "document.getElementById('mod-login-username' ) .value =" + textbox1.text )
bu şekilde olacak hocam conc. string + ya da & olmalı
-
emirhan-exp bunu yazdı
WebView21.ExecuteScriptAsync ( "document.getElementById('mod-login-username' ) .value =" + textbox1.text )
bu şekilde olacak hocam conc. string + ya da & olmalı
eyvallah çalıştı.