我正在尝试执行以下简单脚本:
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://prodkantar/cgi-bin/Maconomy/MaconomyPortal.prod.en_US_KTEU.exe/Framework/login/maconomyportalmain.msc?SSO=no")
driver.implicitly_wait(3)
UserName = driver.find_element_by_xpath('//*[@id="nameofuserid"]').send_keys('XYZ')
但我不断收到以下错误消息:
selenium.common.exceptions.NoSuchElementException:消息:没有这样的消息 元素:无法找到元素: {“ method”:“ xpath”,“ selector”:“ // * [@ id =” nameofuserid“]”}
我尝试了不同的浏览器和不同的find_by参数-一直出现Selenium无法找到元素的错误。
有没有一种检查方法,也许此页面受到某种保护,而硒无法在此页面上发现任何元素?如何检查?
答案 0 :(得分:0)
我相信您使用的url
是特定于用户的url
,即url
是根据用户调用(例如,登录,由系统分配。这可能就是其他人无法访问该特定链接的原因。由于您可能已经获得授权,因此它可能对您有用。
还要考虑使用等待来确保它不是负载问题,即DOM
中还没有出现。检查有关此链接的更多信息:selenium watis
在下面的示例中,我们正在使用功能visible_of_element_located,等待10秒钟使元素可见。
driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
element = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.ID, "myDynamicElement"))
)
finally:
driver.quit()