import os
from selenium import webdriver
import time
from linkedin_scraper import actions
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome("driver/chromedriver", options=chrome_options)
email = os.getenv("LINKEDIN_USER")
password = os.getenv("LINKEDIN_PASSWORD")
actions.login(driver, email, password) # if email and password isnt given, it'll prompt in terminal
driver.get('https://www.linkedin.com/company/biorasi-llc/about/')
_ = WebDriverWait(driver, 3).until(EC.presence_of_all_elements_located((By.TAG_NAME, 'section')))
time.sleep(3)
grid = driver.find_elements_by_tag_name("section")[3]
about_us = grid.find_elements_by_tag_name("p")[0].text.strip()
print(about_us)
17 email = os.getenv("LINKEDIN_USER")
18 password = os.getenv("LINKEDIN_PASSWORD")
20 driver.get('https://www.linkedin.com/company/biorasi-llc/about/')
21 _ = WebDriverWait(driver, 3).until(EC.presence_of_all_elements_located((By.TAG_NAME, 'section')))
28 password_elem.submit()
29
--->30 element=WebDriverWait(driver,10).tea(ec.presence_of_element_locited((by.id,“profile-nav-item”))
~\anaconda3\lib\site-packages\selenium\webdriver\support\wait.py在(self,method,message)之前
78 if time.time() > end_time:
79 break
--->80引发TimeoutException(消息、屏幕、stacktrace)81 82 def until_not(self,method,message=''):
有人,请帮忙怎么解决这个。
可能是因为超时太短(3秒),所以在页面完全加载之前,它就达到了超时阈值。在第21行试着提高到5-10秒。
TIMEOUT = 10
_ = WebDriverWait(driver, TIMEOUT).until(EC.presence_of_all_elements_located((By.TAG_NAME, 'section')))
以下是一些改进代码的技巧:
webdriverwait
),如果可能的话,尽量减少使用.sleep
的时间。WebDriverWait
将停止等待并返回您的元素,从而节省时间。import os
from selenium import webdriver
import time
from linkedin_scraper import actions
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome("driver/chromedriver", options=chrome_options)
email = os.getenv("LINKEDIN_USER")
password = os.getenv("LINKEDIN_PASSWORD")
actions.login(driver, email, password) # if email and password isnt given, it'll prompt in terminal
driver.get('https://www.linkedin.com/company/biorasi-llc/about/')
# directly finds paragraph, removed time.sleep
paragraph_elem = WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.XPATH, '//section//h4/..//p')))
about_us = paragraph_elem.text.strip()
print(about_us)
我有一个问题与产生的消息Kafka的主题。 我使用来自外部供应商的Kafka管理服务,所以我问他经纪人的状况,他说一切都好。顺便说一句,它发生在三个不同的Kafka实例上。Kafka客户端版本也无关紧要-0.11.0.0和2.0.1都有。
我对Selenium和Python是新手。我可以浏览网站,找到元素并打印出来,但速度很慢 Python版本:3.10;Selenium WebDrive:Firefox;IDE:PyCharm 2021.3.2(CE);操作系统:Fedora 35 VM 我试图打印的元素的HTML代码: 我的Python Selenium找到了大部分时间都能正常工作的代码(但当服务器需要很长时间才能响应时失败):
我们目前正在将我们的自动化脚本从Selenium RC迁移到WebDriver。我遇到了一些WebDriver的问题,主要是处理在被测试的web页面中的内容发生更改时抛出的TimeoutExceptions。 例如,我当前正在登录一个页面,然后单击submit按钮,该按钮将重定向到一个新页面。调用click()方法的瞬间,就会引发异常。但是,如果我将注意力集中在password字段并使用SendK
我用的是Selenium ChromeDriver v2.40,Chrome版本67。 上面两个findelement都可以,可以获取值,但不能点击,因为元素不可见。 所以我继续尝试预期条件,没有运气: 上面的代码返回: 它与Chromev67有任何向后兼容问题吗?
问题内容: 在下面的代码中,我按预期在100秒后捕获了TimeoutException。在这一点上,我希望代码从main退出,而程序终止,但它会一直打印到控制台。如何使任务在超时后停止执行? 问题答案: 您需要在超时时取消任务(并中断其线程)。那就是方法。:
我正在尝试使用VertxUnitRunner运行junit测试用例。班我有35个测试用例,每次都会针对不同的测试用例并发异常。我正在与jenkins一起在VM机器上运行这些测试用例。 有人知道这个问题的解决方案吗?