使用搜索栏在Linkedin中搜索查询?我正在使用Selenium(在python中)

2024-04-26 14:54:15 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着用selenium在LinkedIn上搜索一个公司的名字,但是搜索栏似乎有一堆元素重叠在一起。我尝试使用的每个id或类都会出现错误:“AttributeError”。有人能告诉我该用哪个id或班级吗?我真的很感激!你知道吗

driver = webdriver.Chrome()
driver.get('https://www.linkedin.com/login')


username = 'xxxxxxx'
password = 'xxxxxxx'


nameidElem = driver.find_element_by_id('username')
nameidElem.send_keys(username)
pwdidElem = driver.find_element_by_id('password')
pwdidElem.send_keys(password)
continueElem = driver.find_element_by_class_name("btn__primary--large")
result = continueElem.submit()
time.sleep(5)


search = driver.find_element_by_id("nav-search-artdeco-typeahead").click()
search.send_keys('sports')
search.submit()

Tags: sendidsearchbydriverusernamepasswordelement
2条回答

在搜索输入上尝试以下步骤

search = driver.find_elements_by_xpath("//input[@aria-label='Search']").click()
search.send_keys('sports')
search.submit()
  1. 考虑使用Explicit Waits来确保元素在与它们交互之前是存在的/可见的/可点击的。查看How to use Selenium to test web applications using AJAX technology文章了解更多详细信息
  2. 当您单击元素时,它可能会更改其在DOM中的状态,因此您可能需要再次调用find_element函数
  3. 您可能希望更改定位器以匹配以下元素:

    <input role="combobox" autocomplete="off" spellcheck="false" aria-autocomplete="list" aria-invalid="false" aria-expanded="false" aria-label="Search" placeholder="Search" type="text">
    
  4. 把所有东西放在一起:

    nameidElem = WebDriverWait(driver, 10).until(expected_conditions.presence_of_element_located((By.ID, "username")))
    nameidElem.send_keys(username)
    pwdidElem = WebDriverWait(driver, 10).until(expected_conditions.presence_of_element_located((By.ID, "password")))
    pwdidElem.send_keys(password)
    continueElem = WebDriverWait(driver, 10).until(
        expected_conditions.presence_of_element_located((By.CLASS_NAME, "btn__primary large")))
    result = continueElem.submit()
    
    search = WebDriverWait(driver, 10).until(
        expected_conditions.presence_of_element_located((By.XPATH, "//input[@placeholder='Search']"))).click()
    WebDriverWait(driver, 10).until(
        expected_conditions.element_to_be_clickable((By.XPATH, "//input[@placeholder='Search']"))).send_keys('sports')
    WebDriverWait(driver, 10).until(
        expected_conditions.element_to_be_clickable((By.XPATH, "//input[@placeholder='Search']"))).submit()
    

相关问题 更多 >