Нажмите кнопку Selenium, которая не является входом.C#

Место общения программистов C#
Ответить
Anonymous
 Нажмите кнопку Selenium, которая не является входом.

Сообщение Anonymous »

У меня есть следующий HTML-код:

Код: Выделить всё





CONSULTAR PRODUTO





CANCELAR PRODUTO


Чего я пытался достичь: Конечно, я не размещал слишком много всего HTML-кода. Однако эта кнопка взаимодействует с переключателем на таблице. Учитывая ручной процесс, я бы щелкнул переключатель (чтобы выбрать опцию), а затем щелкнул кнопку с текстом «CONSULTAR PRODUTO». Вот код, который я использовал для доступа к кнопке.

Код: Выделить всё

driver.FindElement(By.ClassName("accordion-tab-body")); //After clicking on an accordion it expands a table with all the data I need.
var accordionData = driver.FindElement(By.CssSelector("div > spaui-datatable > table > tbody")); //Navigating to the table to get its elements
var rows = accordionData.FindElements(By.CssSelector("tr")); //Each table row. Ignoring table head, not interesting right now

foreach(var currData in rows)
{
var lines = currData.FindElements(By.CssSelector("td"));
foreach(var currTd in lines)
{
if(currTd.Text == "") //If the text is blank, means the first element - which is the radio button icon
{
currTd.Click(); //Radio selected
var consultarProdutoBtn = driver.FindElement(By.CssSelector("div > div > div > button")); //The related button was found (I think).
consultarProdutoBtn.Click(); //Where it crashes.

}
}
}
Однако я всегда получаю исключение, сообщающее, что элемент не является интерактивным.
У меня нет ни тегов в HTML-коде, ни отправки. Все, что у меня есть, это эта кнопка.
Я прочитал много сайтов о SO (вот почему мне удалось зайти так далеко), но до сих пор не могу нажать эту кнопку.
Я подумал о том, чтобы узнать его местоположение и щелкнуть по его координатам с помощью JavaScript. Может ли это быть правильным решением?
По сути, мне нужно было бы получить кнопку с текстом «CONSULTAR PRODUTO» и нажать на нее. Я также пытался добраться до кнопки, используя ее XPath:

Код: Выделить всё

 var consultarProdutoButton = driver.FindElement(By.XPath("//button[contains(text(), 'CONSULTAR PRODUTO')]"));
consultarProdutoButton.Click();
Но это тоже не сработало.
Любой вклад приветствуется, большое спасибо.

Подробнее здесь: https://stackoverflow.com/questions/787 ... t-an-input
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»