小编ove*_*ste的帖子

Selenium/Firefox:命令".click()"不适用于找到的元素

我试图找到解决这个问题的方法,我花了很多时间,但这对我来说几乎是不可能的.

问题:我在Firefox中使用Selenium和Java.我需要找到一个元素(列表框)并单击它.因此,代码找到元素,但单击操作不起作用.它每次都适用于谷歌浏览器,有时只在Firefox中(有时相同的Java代码有效,有时则无效).

当程序进入页面时,有一部分代码带有元素:

    <div id="size-btn" class="size-btn">
      <span class="selected-size">SELECCIONA TALLA </span>
      <div class="size-select" style="display: none;">
        <table>
          <tbody>
            <tr id="selecsize_2" class="product-size" data-ga-props="{action:'Seleccionar_Producto', opt_label:'Escoger_Talla'}" data-catentryid="1051607">
            <tr id="selecsize_3" class="product-size" data-ga-props="{action:'Seleccionar_Producto', opt_label:'Escoger_Talla'}" data-catentryid="1051608">
            <tr id="selecsize_4" class="product-size" data-ga-props="{action:'Seleccionar_Producto', opt_label:'Escoger_Talla'}" data-catentryid="1051609">
            <tr id="selecsize_5" class="product-size" data-ga-props="{action:'Seleccionar_Producto', opt_label:'Escoger_Talla'}" data-catentryid="1051610">
          </tbody>
        </table>
      <button class="size-guide gaViewEvent gaTrack" data-ga-props="{action:'Seleccionar_Talla', opt_label:'Guia_de_tallas'}" data-href="http://www.anyweb.com/webapp/wcs/stores/servlet/ProductGuideSizeAjaxView?catalogId=24052&categoryId=358056&langId=-5&productId=1047599&storeId=10701">Guía de tallas</button>
      </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

并且在单击元素时,代码的一部分会发生变化:

    <div id="size-btn" class="size-btn opened">
Run Code Online (Sandbox Code Playgroud)

我尝试了很多解决方案,有时它可以工作,但下次我运行程序时,它不会再次运行.

一些解决方案

  1. 它找到元素,但不运行单击操作.我检查了xpath和cssSelector,并找到了这些表达式的唯一元素.

    driver.findElement(By.xpath("//div[@id='size-btn' and not(contains(@class,'opened'))]/span")).click(); // Also checked with By.cssSelector("span.selected-size")
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我虽然是因为时间,所以我试图以这种方式解决它.

    WebElement we = driver.findElement(By.xpath("//div[@id='size-btn' and not(contains(@class,'opened'))]/span")); // By.cssSelector("span.selected-size")
    Thread.sleep(3000);
    we.click(); …
    Run Code Online (Sandbox Code Playgroud)

java firefox selenium selenium-webdriver

20
推荐指数
1
解决办法
2万
查看次数

有没有办法在Locale上按国家/地区默认了解语言?

我有这些代码行:

Locale[] cosas = Locale.getAvailableLocales();

for (int i = 0; i < cosas.length; i++) {
    log.info(cosas[i]);
}
Run Code Online (Sandbox Code Playgroud)

我得到这个清单:

ms_MY
ar_QA
is_IS
fi_FI
pl
en_MT
it_CH
nl_BE
ar_SA
ar_IQ
es_PR
es_CL
fi
de_AT
da
en_GB
es_PA
sr
ar_YE
mk_MK
mk
en_CA
vi_VN
nl_NL
es_US
zh_CN
es_HN
en_US
fr
th
ar
ar_MA
lv
de
in_ID
hr
en_ZA
ko_KR
ar_TN
in
ja
sr_RS
be_BY
zh_TW
ar_SD
pt
is
ja_JP_JP_#u-ca-japanese
es_BO
ar_DZ
ms
es_AR
ar_AE
fr_CA
sl
es
lt_LT
sr_ME_#Latn
ar_SY
ru_RU
fr_BE
es_ES …
Run Code Online (Sandbox Code Playgroud)

java locale localization resourcebundle internationalization

7
推荐指数
1
解决办法
1913
查看次数