当前位置: 首页 > 知识库问答 >
问题:

如何使用Selenium和Java将文本发送到Angular页面中的amount字段

松安民
2023-03-14
    null

我想更改该字段并输入任何其他金额。

我标识的Xpath-

//This works when the site loaded for the first time with 10,000 as the default value
@FindBy(xpath = "//div[@class='ieco-blue-underline']/span/b")
WebElement amountField;

//The XPath changes when we enter Amount as '500' <Tab out>..the XPath becomes as per below-
@FindBy(xpath = "//div[@class='ieco-blue-underline']/input")
WebElement amountField;

第一次输入时是否需要使用第1个xpath..然后在输入500、1000等值时使用第2个xpath?

public static void sendKeysWithWait(WebElement element, String text){
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOf(element));

在每一种方式中,Click工作..但sendkeys不工作。我使用chromedriver执行,使用Selenium版本3.141.59

共有1个答案

谢雅珺
2023-03-14

要将字符序列123450发送到网页中的Amount字段,由于元素是角度元素,您需要使用WebDriverWait forElementToBeclickable(),并且可以使用以下任一定位器策略:

>

  • CSSSelector:

    new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.ieco-invest-rb20 span.ng-star-inserted>b"))).click();
    WebElement element = new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[name='investedAmt']")));
    element.clear();
    element.sendKeys("123450");
    

    XPath:

    new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[contains(@class, 'ieco-invest-rb20')]//span[@class='ng-star-inserted']/b"))).click();
    WebElement element = new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='investedAmt']")));
    element.clear();
    element.sendKeys("123450");
    

  •  类似资料:
    • 问题内容: 我在Windows7上使用Selenium和python。 我的代码: 该代码有效,但是当打开时,即“电话”的数字化非常慢(大约20秒)。在Firefox中,它几乎是瞬时的。 为什么这样?这是正常的?我做错了吗? PS:另外,将IEDriverServer.exe放在哪里更好?在内部,所以对于我的所有项目或在每个项目中,我只有一个文件(例如注释掉的部分)? 问题答案: 是的,您没看错。

    • 问题内容: 我想要做的是每当用户选择图片并单击按钮时,它将把图像移动到特定的文件夹,并将链接保存到数据库的user_image列。 我的问题是,单击“提交”按钮后,图片的实际名称未保存在数据库列中。示例多数民众赞成在数据库中保存的值没有图片文件名。 我认为photo.php没有收到文件的值,任何人都可以帮助我解决它。 脚本: photo.php 问题答案: 看看这个http://malsup.co

    • 问题内容: 我的代码逐行将文本输入到网页的文本区域中,如何 使它一次全部插入整个文本,是否有解决方案 ?因为逐行需要很多时间 问题答案: 要将整个文本块通过Python发送到使用硒中,以加快处理速度,您可以注入脚本并使用以下 解决方案: Code Block: from selenium.webdriver.common.by import By from selenium.webdriver.s

    • 问题内容: 如何使用AngularJS发送POST请求?JSON部分是必需的,但文件不是必需的。我已经根据其他博客文章尝试过此方法,但是它不起作用。我收到一个 错误的请求400错误 。 200点正确答案将被添加 问题答案: 我已经用一个简单的Spring后端测试了您的代码,并且工作正常: 我已将您的客户端代码与angular v1.1.5一起使用: 请求看起来像这样(从Chrome控制台的“网络”