我有一个基于similar question的问题,该问题有答案,但不适合我。我有一个没有像class="vote-link up"
这样设置的元素,在该元素上很容易使类更改其属性,因为那只是我的与其不相似的一个词。
HTML代码如下<textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
我想删除display: none;
,这是HTML代码的最后两个属性。或将其更改为display: shown;
,执行我显示的选项之一,将得到与我想要的结果相同的结果。
即我要的是将HTML更改为此<textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none;"></textarea>
答案 0 :(得分:1)
为澄清起见, display不是属性,它是style
属性的属性之一。这是reference,以获取更多信息。
这是处理您的情况的两个选项。
选项1:将样式显示属性值更新为 block
JavascriptExecutor js = (JavascriptExecutor)driver;
WebElement ele = driver.findElement(By.id("g-recaptcha-response"));
System.out.println("Before updating the property:" + ele.getAttribute("style"));
js.executeScript("arguments[0].style.display = 'block';",ele);
System.out.println("After updating the property:" + ele.getAttribute("style"));
选项2:删除样式>显示属性
JavascriptExecutor js = (JavascriptExecutor)driver;
ele = driver.findElement(By.id("g-recaptcha-response"));
js.executeScript("arguments[0].style.removeProperty('display')",ele);
System.out.println("After deleting the property:" + ele.getAttribute("style"));