所有元素都是动态的。我只能看到以下html中唯一的占位符: -
<input
id="ext-gen1617"
type="text"
size="20"
class="x-form-field x-form-text x-form-focus"
autocomplete="off"
aria-invalid="false"
placeholder="Gender"
data-errorqtip=""
role="textbox"
aria-describedby="combobox-1166-errorEl"
aria-required="true"
style="width: 78px;"
/>
我需要获取
中显示的值placeholder="Gender".
我尝试使用
//input[@placeholder='Gender']
但是我的webdriver脚本无法识别它。
任何人都可以帮我解决一下这个问题吗?
答案 0 :(得分:7)
String s=driver.findElement(By.xpath("//input[@placeholder='Gender']")).getAttribute("placeholder");
System.out.println(s);
要获取字段的属性,可以使用.getAttribute()方法。
答案 1 :(得分:0)
我假设您正在处理(前端)脚本生成的Web元素,那么您必须采用精益思维方式。不要试图仅通过它的属性来提取web元素。如果你没有让他们尝试从其父或兄弟姐妹建立一个xpath。
说,HTML就像这样,
<div id="somestatic id">
<div id="xyz">
<input name="dynamic one"/>
</div>
</div>
然后你可以构建一个xpath,
//*[@id='staticID']/div/input
表示HTML,
<div id="staticID"></div>
<input name="dynamic one"/>
xpath是,
//*[@id='staticID']/following-sibling::input
类似地,有n个选项可用。试一试
答案 2 :(得分:0)
尝试
driver.findElement(
By.cssSelector("input[id*='ext-gen']")
).getAttribute("placeholder")
让我知道上述声明是否有效。