Playwright Python-选项卡链接不可见



我正试图将鼠标指针悬停在Tab链接上"市场";。但在Playwright内部,它表示元素是不可见的。我尝试过使用page.wait_for_selector,但得到了相同类型的响应。我尝试了多种使用Xpath和CSS Selector的方法,但都不起作用。下面是Python代码,我编写Xpath和CSS选择器的方法,最后是HTML代码。

markets_tab = page.query_selector('//*[@id="sections-scroll-target"]/ul/ul/li[8]/a')

page.wait_for_selector(markets_tab, timeout=10000)
page.hover(markets_tab)
page.wait_for_timeout(10000)

以下是我编写和使用Xpath和CSS Selector的不同方式。我得到的结果都是一样的。前两个Xpath是右键单击并选择Xpath,Xpath到网站的链接是我调整和编写的。还有下面的CSS选择器也是从右键点击和复制。

# Xpath
'//*[@id="sections-scroll-target"]/ul/ul/li[8]/a'
# Full Xpath
'//html/body/div[1]/div/div/div/div[1]/header/div[3]/div/div[2]/div/div/div/ul/ul/li[8]/a' 
# Xpath to tab website link 
'//*[@href= "https://www.testdummysite.com/news/markets?mod=nav_left_section" ]'
# CSS Selector
'#sections-scroll-target > ul > ul > li:nth-child(8) > a'

下面是从";右键单击"-"检查";。选项卡链接";Markets";位于列表项元素标记(li(下。总共有18个菜单选项卡链接;Markets";选项卡链接位于列表项元素标记的第8位。下面是列表项元素标签的HTM代码;a标签";是包含";Markets";选项卡链接,

<li class="style--subsection-item--ICtfMGEX "><a class="style--subsection-link--z3fnuRxn " tabindex="0" href="https://www.testdummysite.com/?mod=nav_left_section">Home</a></li>
<li class="style--subsection-item--ICtfMGEX "><a class="style--subsection-link--z3fnuRxn " tabindex="0" href="https://www.testdummysite.com/?mod=nav_left_section">Jogging</a></li>
<li class="style--subsection-item--ICtfMGEX "><a class="style--subsection-link--z3fnuRxn " tabindex="0" href="https://www.testdummysite.com/?mod=nav_left_section">Tennis</a></li>
<li class="style--subsection-item--ICtfMGEX "><a class="style--subsection-link--z3fnuRxn " tabindex="0" href="https://www.testdummysite.com/?mod=nav_left_section">Soccer</a></li>
<li class="style--subsection-item--ICtfMGEX "><a class="style--subsection-link--z3fnuRxn " tabindex="0" href="https://www.testdummysite.com/?mod=nav_left_section">Basketball</a></li>
<li class="style--subsection-item--ICtfMGEX "><a class="style--subsection-link--z3fnuRxn " tabindex="0" href="https://www.testdummysite.com/?mod=nav_left_section">Sports</a></li>
<li class="style--subsection-item--ICtfMGEX "><a class="style--subsection-link--z3fnuRxn " tabindex="0" href="https://www.testdummysite.com/?mod=nav_left_section">Tech</a></li>
<li class="style--subsection-item--ICtfMGEX "><a class="style--subsection-link--z3fnuRxn " tabindex="0" href="https://www.testdummysite.com/?mod=nav_left_section">Markets</a></li>
<a class="style--subsection-link--z3fnuRxn " tabindex="0" href="https://www.testdummysite.com/news/markets?mod=nav_left_section">Markets</a>

下面是我在尝试使用页面使元素可见时得到的错误响应。wait_for_selector((

TypeError: click() missing 1 required positional argument: 'selector'

在文档中,应该使用字符串作为选择器。

page.waitForSelector(选择器[,选项](

选择器<string>要查询的选择器

页面。点击(选择器[,选项](

选择器用于搜索元素的选择器

selector = '//*[@id="sections-scroll-target"]/ul/ul/li[8]/a'

page.wait_for_selector(selector, timeout=10000)
page.hover(selector)

看起来您想要https://www.testdummysite.com/news/markets?mod=nav_left_section

如果是这样,这将工作

//*[@href= "https://www.testdummysite.com/news/markets?mod=nav_left_section" ]

但是它们得到不同的链路CCD_ 3。

//*[@id="sections-scroll-target"]/ul/ul/li[8]/a
#sections-scroll-target > ul > ul > li:nth-child(8) > a

因为这些URL相似,我想知道你是否准确地发布了HTML?

最新更新