为了账号安全,请及时绑定邮箱和手机立即绑定

获取由 JavaScript 生成的 HTML 元素

获取由 JavaScript 生成的 HTML 元素

智慧大石 2023-07-28 10:20:41
我有一个由 JavaScript 生成的输入字段<input class="postal-code form-text required form-control" autocomplete="postal-code" data-drupal-selector="edit-field-client-address-0-address-postal-code" type="text" id="edit-field-client-address-0-address-postal-code--bwzakXWpxR0" name="field_client_address[0][address][postal_code]" value="" size="10" maxlength="128" required="required" aria-required="true">正如你所看到的,每次 id 字符串都不同:id="edit-field-client-address-0-address-postal-code--bwzakXWpxR0"使用 Selenium 定位此 id 的正确方法是什么?
查看完整描述

4 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

你可以尝试使用以下

driver.findElement(By.className("postal-code")).sendKeys("your value");


查看完整回答
反对 回复 2023-07-28
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

由于所需元素是一个<input>元素,因此接下来移动您将调用click()sendKeys(),因此要定位您需要使用的元素elementToBeClickable(),您可以使用以下定位器策略之一:

  • cssSelector:

    WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.postal-code[id*='address-postal-code'][name^='field_client_address']")));
  • xpath:

    WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='postal-code form-text required form-control' and contains(@id, 'address-postal-code')][starts-with(@name, 'field_client_address')]")));



查看完整回答
反对 回复 2023-07-28
?
Helenr

TA贡献1780条经验 获得超3个赞

有很多看似独特的属性。你尝试过其中的任何一个吗?潜在的 CSS 选择器


input[autocomplete='postal-code']

input[data-drupal-selector='edit-field-client-address-0-address-postal-code']

input[name='field_client_address[0][address][postal_code]']

或者你可以尝试 ID 开头,例如


input[id^='id="edit-field-client-address-0-address-postal-code--']


查看完整回答
反对 回复 2023-07-28
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

如果 id 是动态的,您可以尝试使用其他定位器。

CSS 选择器:

driver.findElement(By.cssSelector(input[data-drupal-selector='edit-field-client-address-0-address-postal-code'])).sendKeys("your value");



查看完整回答
反对 回复 2023-07-28
  • 4 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信