Hallo zuerst die Referenz des übergeordneten Container erhalten, in dem alle diese Tasten befinden und dann werden Sie auf die Schaltfläche Verweis erhalten haben, an die Sie wie indem eindeutige Parameter an die Methode klicken, die die Schaltfläche Identitäten, die Sie
public IWebElement GetButtontoClick(IWebElement prObj, string propName, string propVlu)
{
IWebElement btnToClick = null;
try
{
//get the list of all buttons in the prObj
IList<IWebElement> btnlList = prObj.FindElements(By.ClassName("xyz"));
//iterate through each button element and find the button you want to click
for (int i = 0; i < btnlList.Count; i++)
{
IWebElement btn = btnlList[i];
var btnPropValue = ((IJavaScriptExecutor)DriverContext.Driver).ExecuteScript("return arguments[0]."+ propName+"; ", btn);
if (propVlu == btnPropValue.ToString())
{
Console.WriteLine("You have found the button you want to click");
btnToClick = btn;
break;
}
}
}
catch (Exception)
{
throw;
}
return btnToClick;
}
Wie nennen diese Methode
//i know outerHTML is too big just for example sake i have give that you can provide any unique property name and unique property value which differentiates one button from other,outerHTML is one such property
IWebElement myButton = GetButtontoClick(prObj, "outerHtml", "outerHTMLValue")
klicken möchten
Ich hoffe, das funktioniert.
"Funktioniert nicht" ist ein bisschen vage. Was ist der erwartete Effekt und was ist der erzielte Effekt? Das erste, was ich denke, ist, dass 'find_element_by_class_name' das tut, was es sagt: Es wird das Element mit diesem Klassennamen finden. Wenn Sie sie * all * finden und in eine Liste einfügen wollen, müssen Sie 'find_elements_by_class_name' verwenden (beachten Sie die Pluralform). – Mikk
'for' gibt Ihnen nicht die Nummer/den Index des Elements, sondern direkt dieses Element - so brauchen Sie' x.is_displayed() 'und' x.click() ' – furas
BTW: immer in Frage stellen FULL Fehlermeldung (Traceback) . Text '" funktioniert nicht "' ist nutzlos ohne Fehlermeldung. – furas