我試圖自動化一個用戶搜索項目&一旦搜索結果出現的情況下,他點擊了該特定項目的數量的服務大小&。無法在selenium webdriver中找到元素div元素
但是,我經常收到當我試圖通過選擇的數量大小,甚至還試圖與所有的定位器播放後更改值&操縱文本字段元素未發現異常爲這個元素(文本框,下拉幾個按鈕)發生的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");
}
的HTML是無效的。 (如何'p'標籤可以在'select'?) –
@MoshFeu該HTML標記來自我試圖自動化的網站。 – AdiBoy
我明白..但也許這就是問題所在。我對此並不熟悉,但對我來說腳本會因此而中斷,但又不熟悉。 –