gpt4 book ai didi

css - 在 div 下定位一个元素

转载 作者:行者123 更新时间:2023-11-28 07:20:55 25 4
gpt4 key购买 nike

 <div class="form-item">
<label class="form-item-label">Mailing Account:</label>
<div class="form-element">
<div class="form-field-wrap>
<input class="form-text x-form-field x-combo-noedit">
</input>

我正在尝试定位元素 <input class="form-text x-form-field x-combo-noedit">属于 <label class="form-item-label">Mailing Account:</label> .

第一个元素应匹配文本“Mailing Account:”,第二个元素应匹配任何这些类“form-text x-form-field x-combo-noedit”。

有人可以建议使用 xpath 的逻辑吗?或 cssSelector好吗?

最佳答案

让我看看我对你的理解是否正确,你想找到类为 'form-text' 'x-form-field' 和 'x-combo-noedit' 的元素,前提是包含的 div 是兄弟元素带有文本“邮寄帐户”的标签

仅使用 xpath 的方法:

WebElement firstElement = driver.findElement(By.xpath("//label[contains(text(), 'Mailing Account:')]"));
WebElement secondElement = firstElement.findElement(By.xpath("./following-sibling::div[1]//input[@class='form-text x-form-field x-combo-noedit']"));

或者如您所写,如果您想匹配任何类,则将第二个 xpath 的“输入”部分匹配到此:

//input[contains(@class,'form-text') or contains(@class ,'x-form-field') or contains(@class ,'x-combo-noedit')]

如果你想把所有的东西组合成一个表达式,你可以使用下面的 xpath:

String xpath = "//label[contains(text(), 'Mailing Account:')]/following-sibling::div[1]//input[contains(@class,'form-text') or contains(@class ,'x-form-field') or contains(@class ,'x-combo-noedit')]";
// and then just find the element
driver.findElement(By.xpath(xpath));

关于css - 在 div 下定位一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32095392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com