所以我得到了一个带有网址的数组,并将它们循环通过
for i in range(len(lines)):
driver.get(lines[i])
try:
wait = WebDriverWait(driver, 10)
bio = wait.until(EC.presence_of_element_located((By.XPATH, "//div[@class='-vDIg']/span"))).text
我的浏览器打开,如果输入一些信息,它将继续并打开新的URL。值得一提的是,我的代码有效,但是有时当它没有得到输入时,它会等待TimeOutException
并在此之后继续。但是它等待了很长时间,我试图像这样改变它:
if ("" in bio):
continue
但是我发现,如果用户的个人资料中没有任何内容,就像这样:
生物中没有任何东西
当他们根本没有个人资料时,是否有一种方法可以更快地跳过用户,或者我必须等待timout异常?
答案 0 :(得分:0)
与其等待生物,不如等待生物已知的元素,例如名称并使用``find_elements`检查生物是否存在,如果生物不存在,它将返回一个空列表
wait = WebDriverWait(driver, 10)
for i in range(len(lines)):
driver.get(lines[i])
wait.until(EC.presence_of_element_located((By.XPATH, "path to the name element")))
elements = driver.find_elements_by_xpath("//div[@class='-vDIg']/span")
if elements:
bio = elements[0].text