стандартный подход поиска по таксту кнопки - xpath (есть и альтернативы напр. у протрактор)
text = 'Continue to Discord'
text = 'Принять приглашение'
driver.find_element_by_xpath('//button/div[contains(text(), "{}")]'.format(text))
но если не настроена кодировка может не найти
{"method":"xpath","selector":"//button/div[contains(text(), "Принять приглашение")]"}
и тогда пишется кастомное ожидание при помощи киртранслит
from cyrtranslit import to_latin
from selenium import webdriver
from selenium.webdriver.firefox.webdriver import WebDriver
def waittest:
def __init__(self, selector, value):
self.selector = selector
self.value = value
def __call__(self, driver):
element = driver.find_element_by_css_selector(self.selector)
text = element.text
print('checking text: "{}" against "{}"'.format(to_latin(text, 'ru'), self.value))
if to_latin(text, 'ru') == self.value:
return element
else:
return None
text = to_latin('Принять приглашение', 'ru')
element = WebDriverWait(driver, 10).until( waittest("button[class *= 'button']", text))