繁体   English   中英

无法在Selenium Webdriver中找到div元素

[英]Unable to locate element a div element in selenium webdriver

我正在尝试自动执行以下方案:在用户中搜索商品,一旦出现搜索结果,他就点击该商品的份量和数量。

在此处输入图片说明

但是,当我尝试通过更改值和通过选择数量大小来操纵文本字段时,即使在尝试使用所有位于这些元素之下的div标签的定位符之后,我也一直在找不到元素异常。文本框,下拉几个按钮)。 我验证了这些元素没有落在框架之下。 我也尝试注入javascript执行操作,但无济于事。 有人可以指出我要去哪里了。

<div id="loaded_item">
<input id="food_entry_food_id" type="hidden" name="food_entry[food_id]" value="348096022">
<input id="food_entry_date" type="hidden" value="2017-01-10" name="food_entry[date]">
<p class="food-description">Bananas, raw</p>
<div class="verified-food-container" style="display: block;">
<div class="user_submitted"></div>
<p></p>
<h3 class="secondary-title">How much?</h3>
<input id="food_entry_quantity" class="text short" type="text" size="30" name="food_entry[quantity]" autocomplete="off" value="1.0">
servings of
<select id="food_entry_weight_id" class="select" name="food_entry[weight_id]">
<p></p>
<p></p>
<h3 class="secondary-title">To which meal?</h3>
<select id="food_entry_meal_id" class="select" name="food_entry[meal_id]">
<p></p>
<input id="update_servings" class="button log" type="submit" value="Add Food To Diary" data-food-id="348096022" data-external-id="63109870792493" data-version-id="197946116099837">
<div class="nutritional_info">
</div>

以下是我的代码来查找这些元素。

           @FindBy(xpath=".//*[@id='searchFoodByName']/form/p/input[4]")
            WebElement searchFoodDatabaseButton;

            @FindBy(linkText = "Bananas, raw")
            WebElement matchedFoodThirdOption;

              @FindBy(xpath="//div[@id='loaded_item']/input[@id='update_servings']")
            WebElement addFoodToDiary;

            @FindBy(xpath=".//*[@id='date_controls']/form/span/a[2]")
            WebElement clickOnNextDate;

            @FindBy(xpath=".//*[@id='food_entry_quantity']")
            WebElement foodEntryQuantity;

            @FindBy(css = "select[id='food_entry_weight_id']")
            WebElement foodEntryWeight;

            @FindBy(css = "select[id='food_entry_meal_id']")
            WebElement addFoodToMeal;


            public void searchFoodItem() throws Exception{

                            TextBoxHelper.set(driver,searchFoodDatabase,"Banana");
                            ButtonHelpers.click(driver, searchFoodDatabaseButton);

                            ButtonHelpers.click(driver, matchedFoodThirdOption);

                            Utils.waitForElement(driver, By.xpath(".//*[@id='loaded_item']"), 2000);

                            foodEntryQuantity.clear();
                            foodEntryQuantity.sendKeys("2.0");

                            Select WeightPickerDropDown = new Select(foodEntryWeight);
                            WeightPickerDropDown.selectByIndex(2);

                            Select MealPickerDropDown = new Select(addFoodToMeal);
                            MealPickerDropDown.selectByIndex(2);

                            ButtonHelpers.jsClick(driver, addFoodToDiary);
                            System.out.println("after clicking the add button");

            }

您的JavascriptExecutor代码可能有误

((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('value', '2.0')", WebElement);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM