登录后,我可以成功地导航到所需的页面。静态元素被和平地定位和打印。页面进行了JavaScript调用,内容在大约4-5秒后更新,我无法定位动态元素。
我在加载Javascript元素之前和之后附加了Inspect元素的图像。
请看一下下面的代码,并提出可能的解决方案。附注: 100次中有2-3次是有效的。
layer = "https://desired.website"
driver.get(layer)
driver.find_element_by_id("email").send_keys('my@email.com')
driver.find_element_by_id("password").send_keys('myPassword')
driver.find_element_by_class_name("css-173kae7").click()
#NOW I'M SUCCESSFULLY LOGGED IN
#Opening the Desired Page, This is a static element
wait = WebDriverWait(driver, 30)
element = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "css-1nga9gi")))
driver.execute_script('''window.open("desired.page","_blank");''')
#Successfully opened desired page and switched to newly opened tab
#Trying to access the element present in <tbody> tag, please refer "Inspect Element after JavaScript elements are loaded"- image.
wait = WebDriverWait(driver, 30)
element = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "css-167dqxg")))
check = driver.find_elements_by_class_name("ccss-13ozsj7")
for e in check:
print(e.text)
print("ALL DATA SUCCESSFULLY PRINTED")
30秒内没有任何反应,我得到超时错误,并显示“所有数据已成功打印”。
我得到的错误代码是:
element = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "css-167dqxg")))
File "C:\Python\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
请看一下Inspect元素。
发布于 2018-08-09 22:10:55
当使用Python时,使用'starts-with‘而不是'undefined-object’
电子邮件地址XPath.//*@id=‘EMAIL -undefined-objectObject-26149’
电子邮件‘driver.find_element_by_xpath(".//inputstarts-with(@id,’)“包含‘driver.find_element_by_xpath(".//inputcontains(@id,’电子邮件‘)的.clear() driver.find_element_by_xpath(".//inputstarts-with(@id,'email')".send_keys("scotty.mitch@gmail.com")) ....or’)”.clear()
https://stackoverflow.com/questions/51622782
复制相似问题