Es gab gestern eine kurze Diskussion über Gitter darüber, aber ich bin in einem Szenario, in dem ich weiß, dass die Front-End-Stylesheets mit Text spielen, dh Groß- und Kleinschreibung, Großbuchstaben usw., und dass die bereitgestellten Testdaten nicht immer dieselben sein werden Fall.
Jetzt glaube ich, dass Selenium nur XPath 1 unterstützt, sodass Sie dort keine Groß- / Kleinbuchstaben verwenden können. Der einzige andere mir bekannte Ansatz ist der Transformationsansatz (alle unter http://stackoverflow.com/questions/17368189/xpath-lower) -case-to-get-a-collection-of-lowercased-values)
Also habe ich mich nur gefragt, ob es einen besseren Weg gibt, dies zu tun? im Idealfall möchte ich nur eine prägnante Art sagen, a=blah
wo bla BlAH
usw. sein könnte.
Ist diese Situation noch wahr? Ich habe mich auch an einer Stelle befunden, an der ich Elemente auswählen kann, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird. und ich kämpfe darum, diese Funktionalität in Gang zu bringen.
Das ist alt so schließend. Aber ich denke, Sie sollten immer basierend auf dem richtigen Fall auswählen und Ihre Testdaten aktualisieren. Wenn Sie nicht sind, dann denke ich, dass Ihre Herangehensweise an das Problem / den Test falsch ist.
In einigen Testfällen gibt es keinen "richtigen Fall". und eine Möglichkeit, sich einem Test "falsch" zu nähern, besteht darin, spröde Anforderungen wie ein sehr präzises Gehäuse zu schaffen.
const SELECTOR = '.my-selector';
const buttonText = 'blabla';
let elements = $$(`${SELECTOR}`);
const buttons = elements.filter(
li =>
li
.getText()
.toLowerCase()
.indexOf(buttonText.toLowerCase()) > -1
);
const button = buttons[0];
Hilfreichster Kommentar
In einigen Testfällen gibt es keinen "richtigen Fall". und eine Möglichkeit, sich einem Test "falsch" zu nähern, besteht darin, spröde Anforderungen wie ein sehr präzises Gehäuse zu schaffen.