Первое, на что я хотел бы указать, вы используете
elem2 = driver.find_element_by_id ("text-input-where"). Clear ()
clear () - очистить значение любого элемента типа текста. Он не допускает никаких параметров, и его тип возвращаемого значения void . Так что elem2
будет нулевым.
Во-вторых, мы можем использовать комбинацию методов в зависимости от тестируемого приложения.
Иногда driver.find_element_by_id("text-input-where").clear()
не работает, если элемент ненажал первым. Таким образом, мы можем сделать,
driver.find_element_by_id("text-input-where").click();
driver.find_element_by_id("text-input-where").clear();
driver.find_element_by_id("text-input-where").sendKeys(textContent);
ИЛИ мы также можем использовать класс действий и ожидания Webdriver.
elem2 = WebDriverWait(browser, 60).until(EC.visibility_of_element_located((By.ID, 'text-input-where')))
webdriver.ActionChains(driver).move_to_element(elem2).click(elem2).perform()
elem2.clear();
ИЛИ, как указано в этом ответе , мы можем смоделироватьКлавиши CTRL + A и DEL.
driver.find_element_by_id("text-input-where").click();
driver.find_element_by_id("text-input-where").send_keys(Keys.CONTROL + "a");
driver.find_element_by_id("text-input-where").send_keys(Keys.DELETE);