'Python, Selenium, webdriverwait until and timeexcepions
Hi I wrote a simple bot who paste ean code and searching a price. Everything works fine till seearching ean code which has no result on the page. Then bot stops program and show errors:
Traceback (most recent call last):
File "C:\Python\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Python\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "c:\Users\Tarnowski\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy\__main__.py", line 45, in <module>
cli.main()
File "c:\Users\Tarnowski\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main
run()
File "c:\Users\Tarnowski\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file
runpy.run_path(target_as_str, run_name=compat.force_str("__main__"))
File "C:\Python\lib\runpy.py", line 269, in run_path
return _run_module_code(code, init_globals, run_name,
File "C:\Python\lib\runpy.py", line 96, in _run_module_code
_run_code(code, mod_globals, init_globals,
File "C:\Python\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "c:\Python\projects\main.py", line 53, in <module>
ean.append(getdata(item))
File "c:\Python\projects\main.py", line 29, in getdata
price = WebDriverWait(driver,1).until(
File "C:\Python\lib\site-packages\selenium\webdriver\support\wait.py", line 89, in until
raise TimeoutException(message, screen, stacktrace)
Anyone can help me fix this problem? I want to search products one by another using ean's code but when there are no such a code, skip this one or print "no result" and contiunue with next ean code.
eans = [
'5411183157583',
'5915081395316',
'5902431691770',
'3606489505943'
]
results = []
def getdata(symbol):
PATH = ("chromedriver.exe ")
driver.get(f"https://www.anyshop.com/result/?q={symbol}")
price = WebDriverWait(driver,1).until(
EC.presence_of_element_located((By.CLASS_NAME, "price-value "))
)
name = WebDriverWait(driver,1).until(
EC.presence_of_element_located((By.CLASS_NAME, "item-product-name "))
)
records = {
'symbol': symbol,
'price': price.text,
'name': name.text
}
print(symbol + ' ' + price.text)
return records
try:
for item in eans:
results.append(getdata(item))
except:
print('no result')
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
