【问题标题】:How to click button and delete input text with Selenium WebDriver如何使用 Selenium WebDriver 单击按钮并删除输入文本
【发布时间】:2021-12-30 09:27:24
【问题描述】:

我可以浏览此页面 [此处][1] 并进入此网站 [此处][2](为此链接的每个演示创建的令牌)

我还可以在此处@class,'coefficient'

使用此 xpath 从轮数中提取值

我可以在左侧找到输入元素,但只删除了一个文本值。我想删除所有值并输入 50。

我似乎也可以找到左侧按钮,因为我没有收到任何异常或错误,但该按钮不可点击。

【问题讨论】:

  • 你缺少的最后一行driver
  • @cruisepandey 注意到
  • 来到spribe.co/games/aviator之后你想做什么
  • 点击“DEMO”按钮(我能做到)并转到飞行员游戏网站,然后删除默认的“1.00”输入文本值并输入我的值然后点击投注按钮。如果您将我的代码复制并粘贴到您的 IDE 中,它就会这样做。只有最后两部分我有问题。
  • 见下文,让我知道它是否也适合您。

标签: java selenium selenium-webdriver button xpath


【解决方案1】:

以下两行:

    firstInput.sendKeys(Keys.CONTROL + "a");
    firstInput.sendKeys(Keys.DELETE);

基本上是清除输入字段,因为.clear()在这种情况下没有按预期工作,我们必须做CTRL+a and then delete

完整的代码如下所示:

driver.manage().window().maximize();
    
driver.get("https://www.spribe.co/games/aviator");
    
WebDriverWait wait = new WebDriverWait(driver, 30);
    
try {
        wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(text(),' Got it')]"))).click();
    }
catch(Exception e){
        e.printStackTrace();
    }
    
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(text(),'Play Demo ')]"))).click();
String originalWinHandle = driver.getWindowHandle();
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[contains(text(),'Yes')]"))).click();
List<String> allHandles = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(allHandles.get(1));
    
WebElement firstInput = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//label[text()='BET']/ancestor::div[contains(@class,'feature')]/descendant::input")));
firstInput.sendKeys(Keys.CONTROL + "a");
firstInput.sendKeys(Keys.DELETE);
firstInput.sendKeys("20");
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//label[text()='BET']/.."))).click();

【讨论】:

  • 我试过 firstInput.sendKeys(Keys.CONTROL + "a"); firstInput.sendKeys(Keys.DELETE);但不起作用,我的输入被添加到默认输入的末尾,如 1.0020。当我使用 firstInput.click(); firstInput.clear();默认输入未清除,我的输入添加为 1.2000。该按钮无法再次单击。我也在尝试使用 javascript 执行器,但没有成功。
  • 可能按钮标签不可点击,因为有两个带有 BET 标签的按钮。我还在忙着弄清楚。
  • 我设法找到按钮并单击它,只有我遇到问题的输入。
猜你喜欢
  • 1970-01-01
  • 2020-09-04
  • 2019-12-14
  • 1970-01-01
  • 2020-01-24
  • 1970-01-01
  • 2017-02-04
  • 2023-04-06
  • 2017-10-31
相关资源
最近更新 更多