Bir firmanın b2b sisteminden veri çekeccek bir program hazırlamaya çalışıyorum.
Siteye girişi yapma ürünü sorgulama ekranları tamam. (Şifreler görünmesin diye atmadım)
Hazırladığım kodda find_elements bölümü ikide bir hata veriyor.
Buraya login özelliği hariç yazdığım programı atacağım.
Bu arada kodu test etmek için
from selenium import webdriver
import pyautogui
import time
import winsound
def bip():
duration = 1000 # milliseconds
freq = 440 # Hz
winsound.Beep(freq, duration)
browser = webdriver.Firefox()
browser.get("https://b2b.sincanli.com/tr")
browser.maximize_window()
time.sleep(2)
ürün = browser.find_element_by_xpath('''//*[@id="SEARCH-f1903-v1-orbis-r1"]''')
ürün.send_keys("4443")
ara = browser.find_element_by_xpath("/html/body/div[2]/div[3]/div/div/div/div/div[2]/div/div/form/div[2]/button")
ara.click()
time.sleep(5)
pyautogui.press('end')
time.sleep(5)
pyautogui.press('end')
time.sleep(2)
bul = browser.find_element_by_xpath('''//*[@id="productList"]/div[2]/div[1]/div[3]/div[1''')
for i in bul:
print(i)
bip()
time.sleep(2)
browser.close()
.
.
.
Gelen hata ise bu
>>>
========== RESTART: C:\Users\gulat\Desktop\2 PY-SİN\Giriş yapmadan.py ==========
Warning (from warnings module):
File "C:\Users\gulat\Desktop\2 PY-SİN\Giriş yapmadan.py", line 18
ürün = browser.find_element_by_xpath('''//*[@id="SEARCH-f1903-v1-orbis-r1"]''')
DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
Warning (from warnings module):
File "C:\Users\gulat\Desktop\2 PY-SİN\Giriş yapmadan.py", line 20
ara = browser.find_element_by_xpath("/html/body/div[2]/div[3]/div/div/div/div/div[2]/div/div/form/div[2]/button")
DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
Warning (from warnings module):
File "C:\Users\gulat\Desktop\2 PY-SİN\Giriş yapmadan.py", line 28
bul = browser.find_element_by_xpath('''//*[@id="productList"]/div[2]/div[1]/div[3]/div[1''')
DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
Traceback (most recent call last):
File "C:\Users\gulat\Desktop\2 PY-SİN\Giriş yapmadan.py", line 28, in <module>
bul = browser.find_element_by_xpath('''//*[@id="productList"]/div[2]/div[1]/div[3]/div[1''')
File "C:\Users\gulat\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 520, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "C:\Users\gulat\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1244, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Users\gulat\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute
self.error_handler.check_response(response)
File "C:\Users\gulat\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: Given xpath expression "//*[@id="productList"]/div[2]/div[1]/div[3]/div[1" is invalid: SyntaxError: Document.evaluate: The expression is not a legal expression
Stacktrace:
RemoteError@chrome://remote/content/shared/RemoteError.jsm:12:1
WebDriverError@chrome://remote/content/shared/webdriver/Errors.jsm:192:5
InvalidSelectorError@chrome://remote/content/shared/webdriver/Errors.jsm:352:5
find_@chrome://remote/content/marionette/element.js:319:11
element.find/</findElements<@chrome://remote/content/marionette/element.js:273:24
evalFn@chrome://remote/content/marionette/sync.js:135:7
PollPromise/<@chrome://remote/content/marionette/sync.js:155:5
PollPromise@chrome://remote/content/marionette/sync.js:126:10
element.find/<@chrome://remote/content/marionette/element.js:271:24
element.find@chrome://remote/content/marionette/element.js:270:10
findElement@chrome://remote/content/marionette/actors/MarionetteCommandsChild.jsm:244:25
receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.jsm:100:31
>>>
Daha açık anlatacak olursam sitedeki ürünün bilgilerinin çekmek istedim fakat bu hata geliyor.
“find_elements” için birsürü yöntem denedim hepsinde uyarı veriyor.
Şimdiden teşekkürler.
İyi forumlar…