我正在尝试编写一个简单的程序来填写要提交的表单(包括订单ID和邮政编码),但我一直收到以下错误:
selenium.common.exceptions.NoSuchElementException: Message: " (without any text following "Message法典审判:
from selenium import webdriver
browser = webdriver.Safari()
browser.get('https://knowledge.tonal.com/s/order-status')
orderElm = browser.find_element_by_id('input-3')
orderElm.send_keys('1000XXX')
zipcodeElm = browser.find_element_by_id('input-4')
zipcodeElm.send_keys('90210')
zipcodeElm.submit()我已经多次检查了我的元素ID,虽然我对此非常陌生,但我很有信心我有正确的元素ID。我做错什么了?
发布于 2022-01-22 04:50:42
若要向元素发送字符序列,需要为WebDriverWait导入element_to_be_clickable(),您可以使用以下任何一个Locator Strategies
使用
XPATH:20).until(EC.element_to_be_clickable((By.XPATH,"//div@data-aura-class='cOrderSearch'//following::input1"))).send_keys('1000XXX') driver.find_element(By.XPATH,"//div@data-aura-class='cOrderSearch'//following::input2").send_keys("90210") )WebDriverWait(驱动程序)
从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC

发布于 2022-01-22 04:25:27
这里有很多问题: A.在获得url之后,您没有等待页面中的元素完全加载,因此元素就找不到了。在我看来,您所拥有的定位器是动态的,例如:input-3,我认为它是input-5 (虽然我在Chrome浏览器上,但这并不排除定位器是动态的)。因此,我重新分解和寻找一些静态定位策略,我贴在下面。C. zipcodeElm.submit()不能工作,因为它不是按钮元素。我也重新考虑过这个问题。这是密码。
driver.get('https://knowledge.tonal.com/s/order-status')
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "(//div[@data-aura-class='cOrderSearch']//input)[1]")))
orderElm = driver.find_element(By.XPATH, "(//div[@data-aura-class='cOrderSearch']//input)[1]")
orderElm.send_keys('1000XXX')
zipcodeElm = driver.find_element(By.XPATH, "(//div[@data-aura-class='cOrderSearch']//input)[2]")
zipcodeElm.send_keys('90210')
driver.find_element(By.XPATH, "//*[@data-aura-class='cOrderSearch']//parent::div//button").click()输出:(退出代码0意味着传递的代码没有错误)
Process finished with exit code 0https://stackoverflow.com/questions/70809938
复制相似问题