selenium görünür olmayan elementler tıklama

Tcspy

Uzman üye
5 Eki 2019
1,034
103
TC
selenium görünür olmayan elementler tıklama tıklayamıyorum bunun bir yöntemi varr mı
 

bay404

Uzman üye
1 Mar 2020
1,672
42
Antalya
Merhaba @Tcspy, selenium sen ne yapabilirsen bunu otomatik olarak yapılması içindir. Yani bir insanın yapabildiklerini web siteleri üzerinde otomatik olarak yapmaktadır. Eğer tıklamak istediğiniz bölümün kodları var ama css olarak gizli ayarlanmışsa tıklayabilirsiniz. Lakin tamamen kodları yok ise tıklayamazsınız. Şöyle bir durumda var örneğin süreli bir buton vardır. Bir süre sonra otomatik çıkıyordur. Buton oluştuğu zaman "xpath" değerini alırsınız ve buton oluşana kadar sleep işlemi ile bekletirsiniz buton oluştuktan sonra tıklayabilirsiniz. Onun dışında bir çözümü bulunmamakta. Saygılarımla Bay404. :diablo
 

gikaa123

Kıdemli Üye
26 Haz 2012
2,605
61


https://lnkload.com/2isDB
test için link atım yardımcı olursan

Görünür olmayan elementler demişsiniz ama görünuyor, anladığım kadarı ile izah edeyim ; Id değeri ile tıklama yapabilirsin, örnek;
Kod:
 var element = driver.FindElement(By.Id("recaptcha-audio-button"));

element.Click();

Olmaz ise Class değerine sağ tıklayıp xpath adresini alır denersiniz , örnek ;
Kod:
var element = driver.FindElement(By.XPath("xpath adresi yapıştır"));

element.Click();
 

Tcspy

Uzman üye
5 Eki 2019
1,034
103
TC
Görünür olmayan elementler demişsiniz ama görünuyor, anladığım kadarı ile izah edeyim ; Id değeri ile tıklama yapabilirsin, örnek;
Kod:
 var element = driver.FindElement(By.Id("recaptcha-audio-button"));

element.Click();

Olmaz ise Class değerine sağ tıklayıp xpath adresini alır denersiniz , örnek ;
Kod:
var element = driver.FindElement(By.XPath("xpath adresi yapıştır"));

element.Click();

 

Tcspy

Uzman üye
5 Eki 2019
1,034
103
TC
Elemanı bulamamış. Acaba o kodu silip Selenium driver ile recaptcha olan siteye gidince manuel olarak tekrar öğeyi denetle yapıp buttonun id'sine bakar mısınız ? website yüklenmeden işlem yapmaya çalışıyor da olabilir taskdelay'ları biraz uzatıp da deneyebilirsiniz.
thread.sleep(7000);
fln yaptım gene aynı
 

alicihancelik

Katılımcı Üye
23 May 2016
522
6
ÖTÜKEN
selenium eklentisi var googlede onu indirip o elemente sağ tıklıyarak otomatik olarak alabilirsin onu kendisi en iyi nasıl alınabiliyorsa öyle alıyor bunun gibi bir çok uygulama var xpatch veya selenium yazarak bulabilirsin chroome mağazasına
 

Tcspy

Uzman üye
5 Eki 2019
1,034
103
TC
Elemanı bulamamış. Acaba o kodu silip Selenium driver ile recaptcha olan siteye gidince manuel olarak tekrar öğeyi denetle yapıp buttonun id'sine bakar mısınız ? website yüklenmeden işlem yapmaya çalışıyor da olabilir taskdelay'ları biraz uzatıp da deneyebilirsiniz.



hiden yazıyor ne yaptıysam gözükmüyor aynı hatayı veriyor bir çözümü var mı mybot.run diye bi bot vardı coc için emlatörde herşeyi yapabiliyordu onun gibi müdahale edebilecek bi program var mı çoklu kanal threding kulanacağım için sıkıntı olur yani en az 10 açacak selenium bi çözüm varsa söyleyin koskoca selenium bi çözüm yok mu

selenium eklentisi var googlede onu indirip o elemente sağ tıklıyarak otomatik olarak alabilirsin onu kendisi en iyi nasıl alınabiliyorsa öyle alıyor bunun gibi bir çok uygulama var xpatch veya selenium yazarak bulabilirsin chroome mağazasına

zaten selenyum kulandığım vistual studio 2019 c# selenium normal chrome değil fotodaki ancak element yok diyor sorun bundan dolayı oluşmakta elementi bulsa tıklayacak ancak olmuyor reklamı geç butonuna tıklayan selenium recaptuha kulaklık sembolüne tıklayamıyor sorun bu

zaten selenyum kulandığım vistual studio 2019 c# selenium normal chrome değil fotodaki ancak element yok diyor sorun bundan dolayı oluşmakta elementi bulsa tıklayacak ancak olmuyor reklamı geç butonuna tıklayan selenium recaptuha kulaklık sembolüne tıklayamıyor sorun bu
 
Moderatör tarafında düzenlendi:

Hichigo

Uzman üye
30 Ağu 2015
1,190
42
github.com/tarik0
Öncelikle her sorunun cevabını forumdan bulmak zorunda değilsin. Basit bir ingilizce ile sorununu Google'ye sorabilirsin.

Örn: How to click on hidden element in Selenium WebDriver?

Ancak senin buradaki sıkıntın bir iframe'in içindeki bir elementle etkileşime geçmeye çalışman. Bunun için switchTo() fonksiyonunu kullanman gerekli.

Normal Selenium kullanarak reCaptcha'yı bu şekilde bir programa dinleterek geçemezsin çünkü reCaptcha tarayıcını Selenium ile kontrol ettiğini anlayabiliyor. Birkaç denemeden sonra reCaptcha V3 skorun düşeceği için daha fazla dinlemene izin vermeyecek. Eğer daha sağlam bir yöntem kullanmak istiyorsan ya kafanı kullanıp başka bir yol bulacaksın ya da kesenin ağzını açıp 2captcha gibi servisleri kullanmalısın.
 

Tcspy

Uzman üye
5 Eki 2019
1,034
103
TC
Öncelikle her sorunun cevabını forumdan bulmak zorunda değilsin. Basit bir ingilizce ile sorununu Google'ye sorabilirsin.

Örn: How to click on hidden element in Selenium WebDriver?

Ancak senin buradaki sıkıntın bir iframe'in içindeki bir elementle etkileşime geçmeye çalışman. Bunun için switchTo() fonksiyonunu kullanman gerekli.

Normal Selenium kullanarak reCaptcha'yı bu şekilde bir programa dinleterek geçemezsin çünkü reCaptcha tarayıcını Selenium ile kontrol ettiğini anlayabiliyor. Birkaç denemeden sonra reCaptcha V3 skorun düşeceği için daha fazla dinlemene izin vermeyecek. Eğer daha sağlam bir yöntem kullanmak istiyorsan ya kafanı kullanıp başka bir yol bulacaksın ya da kesenin ağzını açıp 2captcha gibi servisleri kullanmalısın.
switchTo(driver.findelement...) gibi mi kulanmam lazım

OpenQA.Selenium.InvalidSelectorException: 'invalid selector: Unable to locate an element with the xpath expression //button[contains(@class,'rc-button goog-inline-block')])[2] because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//button[contains(@class,'rc-button goog-inline-block')])[2]' is not a valid XPath expression.
(Session info: chrome=91.0.4472.106)'

OpenQA.Selenium.InvalidSelectorException: 'invalid selector: Unable to locate an element with the xpath expression //button[contains(@class,'rc-button goog-inline-block')])[2] because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//button[contains(@class,'rc-button goog-inline-block')])[2]' is not a valid XPath expression.
(Session info: chrome=91.0.4472.106)'
 

Hichigo

Uzman üye
30 Ağu 2015
1,190
42
github.com/tarik0
switchTo(driver.findelement...) gibi mi kulanmam lazım
Aynı şekilde Google'ye yazarak sorunun cevabını alabilirsin :)

İyi yazılımcı Google'yi iyi kullanan yazılımcıdır diye duymuştum eğer iyi bir yazılımcı olmak istiyorsan Google'yi en iyi şekilde kullanmayı öğrenmelisin.

OpenQA.Selenium.InvalidSelectorException: 'invalid selector: Unable to locate an element with the xpath expression //button[contains(@class,'rc-button goog-inline-block')])[2] because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//button[contains(@class,'rc-button goog-inline-block')])[2]' is not a valid XPath expression.
(Session info: chrome=91.0.4472.106)'

"is not a valid XPath expression." bölümü hatanın ne olduğunu söylüyor zaten. XPath olarak kullandığın string doğru bir XPath string'i değil demek ki.

Kullandığın tarayıcı ne bilmiyorum ama çoğu tarayıcıda elemente sağ tıklayıp XPath yolunu kopyalamanı sağlayan bir özellik mevcut bunu kullanabilirsin.

kg5o067.png
 

Tcspy

Uzman üye
5 Eki 2019
1,034
103
TC
"is not a valid XPath expression." bölümü hatanın ne olduğunu söylüyor zaten. XPath olarak kullandığın string doğru bir XPath string'i değil demek ki.

Kullandığın tarayıcı ne bilmiyorum ama çoğu tarayıcıda elemente sağ tıklayıp XPath yolunu kopyalamanı sağlayan bir özellik mevcut bunu kullanabilirsin.

kg5o067.png
bi sen kod yazsana herşeyi denedim olmuyor resimdekini yapıyorum böyle bir element yok diyor

//-----------------------------------------------------------------------------------
//xpath=//div[2]/button
//id=recaptcha-audio-button
//css=#recaptcha-audio-button
//xpath=//div[@id='rc-imageselect']/div[3]/div[2]/div/div/div[2]/button
//-----------------------------------------------------------------------------
sorun ne hepsi aynı hatayı veriyor
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.