0

我已经编写了一个脚本(python)来登录我的 LinkedIn 页面(提要),然后我希望脚本将我带到我的个人资料页面。但是我无法使用链接捕获元素(每次重新启动浏览器时它都会不断更改其 ID)。显然,我知道该链接,但我希望脚本能够捕获它。

这是我到目前为止的代码:

import parameters
from time import sleep
from selenium import webdriver

driver = webdriver.Chrome('/Users/uglyr/chromedriver')  
driver.get('https://www.linkedin.com')

username = driver.find_element_by_id('session_key')
username.send_keys(parameters.linkedin_username)

sleep(0.5)    

password = driver.find_element_by_id('session_password')
password.send_keys(parameters.linkedin_password)

sleep(0.5)

log_in_button = driver.find_element_by_class_name('sign-in-form__submit-button')
log_in_button.click()

sleep(1)

这会将我带到我的提要页面。

有任何想法吗?

谢谢你

4

2 回答 2

0

感兴趣的a元素确实有变化id="emberXX",但您可以parent 在其子元素上使用来自 selenium 的关键字div

profile = driver.find_element_by_xpath("//div[@data-control-name='identity_profile_photo']/parent::a")
profile.click()

应该带你到你的个人资料。

于 2020-10-10T17:32:24.343 回答
0

在我的情况下,元素的 id 没有改变。但是您仍然可以尝试使用不包含 id 的 xpath。

我希望以下代码行会有所帮助:

menu_icon = driver.find_element_by_xpath(//button[@data-control-name='nav.settings']//child::span[1]) menu_icon.click()

profile_link = driver.find_element_by_xpath(//button[@data-control-name='nav.settings']//following-sibling::div[1]) profile_link.click()

于 2020-10-10T17:57:45.890 回答