t.me/atinfo_chat Telegram группа по автоматизации тестирования

Не получается установить значение в списке

Теги: #<Tag:0x00007f748c817c18> #<Tag:0x00007f748c817b28> #<Tag:0x00007f748c8179c0>

сайт https://cloud.google.com/products/calculator. переключилась на фрейм поля Number of instances и What are these instances for? заполняются без проблем. а вот дальше идут элементы со списками и я никак не могу на них кликнуть.

new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.id("select_value_label_51")));
        WebElement field = driver.findElement(By.id("select_value_label_51"));
        field.click();
        new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.id("select_option_63")));
        WebElement value = driver.findElement(By.id("select_option_63"));
        value.click();

Подскажите, пожалуйста, как обратиться к ним и выбрать нужное мне значение? Я и другие локаторы пробовала, ничего не выходит…

ошибку-то напишите, в ней же все написано, вместе почитаем


при обращении к value (чтобы установить значение) пишет, что элемент не кликабелен.
но и клик по элементу
WebElement field = driver.findElement(By.id(“select_value_label_51”));
field.click();
не дает никакой ошибки, но и ничего не делает. список не открывается.

Можно увидеть Exception, чтобы не своими словами, а вот прямо на что Селениум ругается ?

Там NotInteractable ошибка
Что я обычно делаю если что то не кликается

  1. Нужно пытаться кликать по соседней ноде, которая в области или внутри элемента на который вы хотите кликнуть
    если не работает
  2. Пробуем кликать через Actions
    если не работает
  3. Пробуем кликать через JavaScript - у меня небыло случаев чтоб это не работало
1 Симпатия

ругается на этот элемент
WebElement value = driver.findElement(By.id(“select_option_63”));
value.click();

нажмите на элемент выше по дереву или соседний, как написали уже
элемент, на который вы кликать пытаетесь, не предполагается как кликабельный

оказалось дело было не в локаторах.
Сделала все через JavascriptExecutor. Работает)

так вы грязный хак применили, вместо того, чтоб понять, куда надо кликать селениумом, которой чувствительный к visible|clickable|interactible, js-ом выполняете скрипты

Не будет работать, можете сами попробывать, клик будет проходить но не срабатывать. Самому интересно стало)

Лучше JavaScript использовать в самых крайних случаях, когда другие варианты не работают хотя элемент находится в области видимости, как это подметил @madvlaydin