如何在 Selenium 中设置 aria-pressed="true"?

How To set aria-pressed="true" in Selenium?

HTML:-

<ion-segment-button class="segment-button" role="button" tappable value="sign_in" aria-pressed="false">

硒代码:-

WebDriver driver = new ChromeDriver();
driver.get("URL");
WebElement Login =driver.findElement(ByClassName.className("segment-button"));
Login.submit();

如何在 Selenium 中设置 aria-pressed="true"??

在selenium 中没有直接设置元素属性的方法。但是我们可以使用 javascript 执行器来设置元素的属性,如下所示。

WebDriver driver = new ChromeDriver();
driver.get("URL");
WebElement Login =driver.findElement(ByClassName.className("segment-button"));
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("arguments[0].setAttribute('aria-pressed',true);",Login);

简短的回答是不要。除非您真的知道自己在做什么并且了解网站,否则不要这样做。使用 JS 快捷方式在元素上强制赋值会缩短站点必须处理此用户流的所有事件,并且您可能会使页面处于不良状态。没有用户会 运行 页面上的 JS 将其置于所需状态...您的脚本也不应该。

正确的做法是从用户的角度弄清楚这是如何设置的。我必须按什么按钮等才能获得所需的设置?一旦你弄清楚了,编写 Selenium 代码来按下这些按钮等,你就会得到想要的结果。