Selenium Veri çekme sorunu

Merhaba Arkadaşlar,

aşağıdaki kod ile selenium üzerinden açtığım site içerisindeki ŞİMDİ var mı yok mu ? diye sorgulama yapmaya çalışıyorum bs4 ile denedim ama site browserdan gelen isteklere cevap veriyor requests kabul etmiyor

uzun süre araştırma yaptım selenium ile form doldurmak haricinde veride cekilebiliyor gibi
aşağıdaki örnekte //‘p’[@class"user-orders-type text-green"] deki ŞİMDİ texti var mı yok mu yapamıyorum istek türü olan soup.find_all yanlış oldugunu düşünüyorum ŞİMDİ yazısını selenium aracılığı ile nasıl alırım

    from typing import Any, Union
    from selenium import webdriver
    import time
    from selenium.webdriver.firefox.options import Options
    from selenium.webdriver.common.keys import Keys
    import requests

profile = webdriver.FirefoxProfile()
options = Options()

profile.set_preference("browser.cache.disk.enable", False)
profile.set_preference("browser.cache.memory.enable", False)

profile.update_preferences()
browser = webdriver.Firefox(firefox_profile=profile, options=options, executable_path=geckodriver_path)

browser.get("http://www.site.com")

     url = 'https://www.site.com/deneme-sayfa'
            page = browser.page_source
            soup = BeautifulSoup(page, 'html.parser')

            if soup.find_all('p', attrs={'class': 'user-orders-type text-green'}) == "ŞİMDİ":
                print(soup.text)
            else:
                print("SONRA")

seleniumun kendi kodlarını kullanmanı tavsiye ederim. browser.find_by_element_xpath(xpathkodu).send_keys(“veri”)
browser.find_by_element_xpath(xpathkodu).click()

gibi. btk akademide ileri seviye pythonda anlatıyor seleniumu

@By_Brawe verdiginiz cevapta form doldurma ve tıklama methotu var if arasına yerleştirdim ama olmadı bunların doğrular oldugundan eminmiyiz İF teki olaydan örneklendirsek

Merhaba

from selenium import webdriver

import time

from bs4 import *

browser = webdriver.Firefox()

browser.get("https://www.python.org/")

soup =BeautifulSoup(browser.page_source,features="html.parser")

#time.sleep(5)

tags=soup.find_all('a', {'class': 'donate-button'})

for i in tags:

    if i.text=="Donate" :

        print(i.text)

    else:

        print("SONRA")

Dikkat etmen gerekenler

find_all()

  • Fonksiyonu liste döndürür yani içinde arama için for döngüsü kurmalısın.
  • Belli bir alanın içeriği için .text ile içeriği alabilirsin.
  • Selenium geckodriver mevcut Firefoxu kullanarak çalışır ve siteyi komple render eder yani sitenin kendisini kurmasını beklememiz gerekebilir.Bunun için time.sleep() ile biraz beklettim(her ihtimale karşı opsiyonel).

Websitesini atarsan müsait zamanda istediğin sorguya bakabilirim.Kolay gelsin…