【发布时间】:2019-08-02 14:11:40
【问题描述】:
基本上,我想将键发送到输入元素。我尝试使用SendKeys() 方法,但它不发送我使用的值,而是使用输入框的前一个值属性。此外,使用SendKeys() 或ExecuteScript() 方法不会改变输入元素的值属性。以下是我尝试过但到目前为止还没有工作的代码片段:
// Wait for zipcode input box
Utilities.WaitUntilElementIsPresent(driver, By.CssSelector("input#fad-dealer-searchbar-search-textbox"));
// click to go to the us site
var zipcodeInput = driver.FindElement(By.CssSelector("input#fad-dealer-searchbar-search-textbox"));
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
zipcodeInput.Clear();
zipcodeInput.Click();
//js.ExecuteScript("arguments[0].setAttribute('value', '11361')", zipcodeInput);
//js.ExecuteScript("document.getElementById('fad-dealer-searchbar-search-textbox').setAttribute('value', " + zipcode + ")");
//js.ExecuteScript("document.getElementById('fad-dealer-searchbar-search-textbox').value=11361");
//js.ExecuteScript("document.getElementById('fad-dealer-searchbar-search-textbox').innerHTML = 11361;");
zipcodeInput.SendKeys(zipcode);
zipcodeInput.Submit();
zipcodeInput.SendKeys(Keys.Enter);
这是我需要输入文本的输入元素:
<div class="sdp-form-text-box-text-box-container search-textbox">
<input type="number" autocomplete="off" value="00002" data-validation-state="success" aria-invalid="false" aria-required="true" class="sdp-form-text-box-text-box gcss-button-align-left" id="fad-dealer-searchbar-search-textbox" maxlength="5" name="searchTextBoxValue" pattern="\d*" placeholder="Enter ZIP Code" required="" role="search">
</div>
如果你们需要检查Chrysler,这是我正在抓取的网站。 我希望我已经正确解释了我的问题。任何帮助表示赞赏。
【问题讨论】:
-
在不同站点上测试相同代码后发现这是通过克莱斯勒站点进行网络爬网时出现的问题。但是,我仍在寻找一种方法来完成这项任务。
标签: c# selenium xpath css-selectors webdriverwait