Çözüldü Python 3'de Cümle İçine Nasıl Değişken Eklenir?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

uguratakan

Megapat
Katılım
4 Temmuz 2016
Mesajlar
742
Çözümler
4
Yer
visor01 @ istikram.
Daha fazla  
Cinsiyet
Erkek
Meslek
Mobil Uygulama Geliştirici
Bir sitede üyelerin sıralaması var. Bunların XPath adresinle sadece bir sayı değişiyor ve ben o sayıyı değiştirerek bir sonraki kullanıcıya atlamak ona mesaj göndermek istiyorum amacım bir reklam botu yapmak.

[CODE title="XPath"]html/body/div[1]/div/div[1]/div/aside/nav/div/div/div/div[2]/div[2]/div[2]/a[1]
/html/body/div[1]/div/div[1]/div/aside/nav/div/div/div/div[2]/div[2]/div[2]/a[2]
/html/body/div[1]/div/div[1]/div/aside/nav/div/div/div/div[2]/div[2]/div[2]/a[3][/CODE] Bu şekilde sondaki sayıyı değiştirmem yeterli.

Benim dediğim yöntemler bunlar.
[CODE lang="python" title="Kod"]k=1
cumle=browser.find_element_by_xpath("/html/body/div[1]/div/div[1]/div/aside/nav/div/div/div/div[2]/div[2]/div[2]/a["+k+"]")

----------------------------------------------------------------------------------------------------------------------------
onek="/html/body/div[1]/div/div[1]/div/aside/nav/div/div/div/div[2]/div[2]/div[2]/a["
sonek="]"
cumle=onek+k+sonek
[/CODE]

Bu sefer de ilk örnek için "TypeError: can only concatenate str (not "int") to str" ikinci örnek için "TypeError: can only concatenate str (not "int") to str" hatalarını veriyor.
İşin içinden çıkamadım gitti. [1] olan yeri sürekli değişecek şekilde ayarlamak istiyorum.
 
"k"yi daha önce tanımladığınızdan emin misiniz? Attığım görüntüde de olduğu gibi daha önceden tanımlı bir "k" değeri varsa str() fonksiyonun k'nin değerini string bir ifadeye çevirir.

Durum budur.
 

Dosya Ekleri

  • Kayıt_2021_02_13_23_35_57_645.gif
    Kayıt_2021_02_13_23_35_57_645.gif
    1,3 MB · Görüntüleme: 41
Hocam zaten isteğiniz oluyor. Siz yeni bir değer verince önceki yaptığınız atamalar değişmez. Eğer uğraştığınız değişken tipi veya container tipi immutable yani değiştirelemez ise bu genelde böyledir. String immutable bir değişken türü. Bu yüzden yeni değer girdikten sonra bir daha "cumle" değişkenini değiştirmeniz gerekir.
 
Hocam zaten isteğiniz oluyor. Siz yeni bir değer verince önceki yaptığınız atamalar değişmez. Eğer uğraştığınız değişken tipi veya container tipi immutable yani değiştirelemez ise bu genelde böyledir. String immutable bir değişken türü. Bu yüzden yeni değer girdikten sonra bir daha "cumle" değişkenini değiştirmeniz gerekir.
Yani k değişkenini ile birlikte her seferinde yeni bir cumle değişkeni tanımlamam gerekiyor.
[CODE lang="python" title="Reklam"]i=1
k=1
onek="/html/body/div[1]/div/div[1]/div/aside/nav/div/div/div/div[2]/div[2]/div[2]/a["
sonek="]"

while i< int(kisi) :
cumle=onek+str(k)+sonek
chat=browser.find_element_by_xpath(cumle)
chat.click()
time.sleep(1)
browser.find_element_by_xpath('//*[@id="chat-text-area"]').send_keys(mesaj)
browser.find_element_by_xpath('//*[@id="chat-text-area"]').send_keys(Keys.ENTER)
time.sleep(1)
browser.find_element_by_xpath('//*[@id="messages-tab"]').click()
k=k+1


browser.quit()
exit()[/CODE]
Yardımcı olmaya çalışan herkese teşekkürler. Sorun çözüldü.
 
Son düzenleme:
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı