小编Kaw*_*shi的帖子

Selenium Webdriver:单击单选按钮不起作用

我有一个点击单选按钮的代码,起初我使用的是Chrome.使用以下代码:

driver.findElement(By.id("radioButton1"))).click();
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

"org.openqa.selenium.WebDriverException: Element is not clickable at point (411, 675). Other element would receive the click: ..."
Run Code Online (Sandbox Code Playgroud)

做研究,我把代码更改为:

actions.moveToElement(driver.findElement(By.id("radioButton1"))).click().perform();
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试使用Internet Explorer驱动程序.但它不会执行点击.

我尝试了以下方法:

driver.findElement(By.id("radioButton1")).sendKeys(Keys.ENTER);

actions.moveToElement(driver.findElement(By.id("radioButton1"))).click().perform();

((JavascriptExecutor) driver).executeScript("arguments[0].click()", driver.findElement(By.id("radioButton1")));
Run Code Online (Sandbox Code Playgroud)

但都没有效果.第一个只关注按钮,所以我添加了另一个sendKeys,但它不起作用.第二和第三,没有任何反应.

编辑:

添加HTML代码段.

<input name="btn1" class="w-rdo-native" id="radioButton1" type="radio" value="value1" bh="RDOINP" isrefresh="false">
<label class="w-rdo w-rdo-dsize" bh="RDO"></label>
Run Code Online (Sandbox Code Playgroud)

当我点击单选按钮时,标签会在点击后获得额外的属性.

<label class="w-rdo w-rdo-dsize" bh="RDO" AWMouseDown="true"></label>
Run Code Online (Sandbox Code Playgroud)

附加编辑:

这组按钮看起来像这样:

在此输入图像描述

如前所述,一个按钮+标签块具有以下HTML结构:

<tr>
   <td>
      <div class="w-rdo-container">
          <input name="radioButtons" class="w-rdo-native" id="button1" type="radio" value="button1" bh="RDOINP" isrefresh="false">
          <label class="w-rdo w-rdo-dsize" bh="RDO">
          </label>
      </div>
  </td>
  <td class="sectionHead">Option 2
  </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

单击按钮后,相应的标签将获得其他属性:

<label class="w-rdo …
Run Code Online (Sandbox Code Playgroud)

java selenium

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

循环通过RegEx匹配并替换当前匹配

请考虑以下字符串:

他点了凤尾鱼披萨.不幸的是,这不是他想要的.此外,配有蘑菇,意大利辣香肠和凤尾鱼的披萨比配凤尾鱼的普通披萨要好得多.

假设您需要更改pizza with (ingredients)pizza with (ingredients) on a thin crust.

为此,我设置了一个正则表达式:

(?i:pizza with [a-zA-Z,\s]*?anchovies)
Run Code Online (Sandbox Code Playgroud)

这抓住了三场比赛.然后,我继续on a thin crust使用以下代码添加到每个匹配:

Pattern p = Pattern.compile("(?i:pizza with [a-zA-Z,\s]*?anchovies)");
Matcher m = p.matcher(string);
while(m.find())
{
    string = string.replace(m.group(), m.group() + "on a thin crust.");
}
Run Code Online (Sandbox Code Playgroud)

然后输出将是:

他在薄薄的外皮上点了一块披着凤尾鱼的薄饼.不幸的是,这不是他想要的.此外,配有蘑菇,意大利辣香肠和凤尾鱼的比萨饼比普通的披萨要好得多,而薄皮上的薄皮上有凤尾鱼.

发生了什么:

第一场比赛pizza with anchovies与上一场比赛相同.因此,使用String.replace导致第一个和最后一个匹配变为pizza with anchovies on a thin crust.因为,我们循环遍历所有匹配,最后的匹配仍将发生,并且替换函数也将替换第一个匹配(因为第一个匹配和最后一个匹配是相同的).因此,我们得到了两倍on a thin crust.

问:

有没有办法在当前比赛中替换正则表达式匹配?

java regex

6
推荐指数
1
解决办法
764
查看次数

仅当负向前瞻和后向查找均失败时才匹配

我正在尝试创建一个正则表达式,当且仅当该单词未用单引号引起来时检查句子中是否存在单词。

我尝试过不同的正则表达式,例如:

(?<!' )(?i:THEN)|(?i:THEN)(?! ')
Run Code Online (Sandbox Code Playgroud)

匹配 'then ' | 'then',它不应该匹配。

(?<!' )(?i:THEN)(?! ') or (?<!(' ))(?i:THEN)|(?i:THEN)(?!( '))
Run Code Online (Sandbox Code Playgroud)

匹配不应匹配的“then”

我真的很困惑,因为我不知道哪个正则表达式有效。我也尝试过其他正则表达式,但它无法匹配:

' then I jumped.
He said then 'Wow'.
Run Code Online (Sandbox Code Playgroud)

一些意见将不胜感激!

谢谢你!

regex

5
推荐指数
1
解决办法
926
查看次数

标签 统计

java ×2

regex ×2

selenium ×1